我可以使用Stomp同时建立多个连接吗?

时间:2017-10-26 15:55:36

标签: javascript angular stomp

我在Angular应用程序中使用ng2-stomp-service。

建立多个连接(而不是多个订阅)是否有意义?在过去,我只看到了一个连接,并从那里我们进行了多次订阅。但现在我的同事建议我建立三个连接,并且我对每个连接都有不同的订阅。理由(我告诉我们)如果我们失去与一个人的联系,我们仍然可以与其他人建立联系。

我甚至不确定我是如何对此进行编码的。目前,我有一个连接。它看起来像这样:

       if (this.stomp.status !== 'CONNECTED') {
            this.stomp.configure(this.socketConfig);
            this.stomp.startConnect().then((frame) => {
              this.stomp.done('init');
            });

            this.stomp.after('init').then(() => {
                this.reestablishSubscriptions();
            });
        }

但是好像我要建立多个连接,我需要更多stomp本身的实例,比如this.stomp,this.stomp2,this.stomp3,每个都调用自己的连接函数?或者单个this.stomp可以建立多个连接吗?

1 个答案:

答案 0 :(得分:0)

不,建立多个连接没有意义。你应该做的是建立一个连接,如果该连接丢失,重新建立它。

如果你确实有多个连接,很可能如果其中一个连接丢失,那么所有连接都会同时丢失。这可能是由网络问题或消息代理因不活动而重新启动或断开连接引起的。要避免由于不活动而导致连接中断,请指定热跳(由stomp协议v1.1及更高版本支持)。

你是对的,每个连接都需要一个stomp对象(实例)。因此,对于多个连接,您需要多个stomp对象。