jquery stomp websockets服务器重新连接重新初始化

Posted

技术标签:

【中文标题】jquery stomp websockets服务器重新连接重新初始化【英文标题】:jquery stomp websockets server reconnection reinitialization 【发布时间】:2017-07-03 21:11:44 【问题描述】:

我有一个通过 stomp.js 文件连接到我的 Java 后端的 websocket 应用程序。

function connect() 

            var socket = new SockJS('<?php echo $rootbasename;?>wsconnect');
            stompClient = Stomp.over(socket);
            stompClient.debug = null;
            stompClient.connect(, function (frame) 
                console.log('Connected: ' + frame);
                console.log('/queue/messages/' + widgetId + "/" + $.cookie(cookiename));
                stompClient.subscribe('/queue/messages/' + widgetId + "/" + $.cookie(cookiename), function (result) 
                    //code here

                , userToken: $.cookie(cookiename), widgetId: widgetId);

                stompClient.subscribe('/queue/makereadresult/' + widgetId + '/' + $.cookie(cookiename), function (result) 

);

但是,如果我的 java 后端服务器将重新启动怎么办?我希望客户不会注意到任何变化。有没有办法在连接丢失时自动重新连接?或者有什么方法可以让客户顺利吗?

【问题讨论】:

【参考方案1】:

连接时可以传入错误回调。在那里你可以重新连接逻辑。 比如stomp就有这个方法

client.connect(login, passcode, connectCallback, errorCallback);

在 errorCallback 中只需调用 connectCallback。

【讨论】:

谢谢,但问题是错误回调只触发一次,但如果我的服务器宕机怎么办? 5分钟。当服务器再次启动时,我需要它自动重新连接,但您的方法在这种情况下不起作用。 你可以在错误回调中写任何你想要的。您可以使用 setInterval 方法尝试获取连接并保持连接直到它连接 好的,谢谢。但是您的答案与该线程接受的答案的链一起使用:***.com/questions/22361917/…

以上是关于jquery stomp websockets服务器重新连接重新初始化的主要内容,如果未能解决你的问题,请参考以下文章

向非 Stomp/Websocket 消费者发送消息

websocket stomp连接一段时间后断开

通过 websocket 发送 STOMP 帧

stomp.js websocket广播模式

通过 Spring Websocket STOMP 打开连接会导致我们的服务器死机

在 Angularjs 中通过 WebSocket STOMP