Spring websockets 使用 stomp 和 sockjs 在打开新标签时创建新连接



我正在使用没有弹簧安全性的 stomp 和 sockjs 的 spring websockets。当我在浏览器中有一个我的应用程序时,就会建立新的套接字连接,但是当我在同一浏览器中打开另一个选项卡时,它也会创建新的套接字连接。所以我想停止这种行为,并希望它在打开新选项卡时使用相同的连接 ID。这是一个聊天应用程序。使用此博客中的代码:

https://github.com/salmar/spring-websocket-chat

任何人都可以给我工作代码 如何在本地存储中存储连接 n 从本地存储中检索新选项卡中存储的套接字连接?

            function connect() {
            var socket = new SockJS('/spring-mvc-java/chat');
            stompClient = Stomp.over(socket);  
            stompClient.connect({}, function(frame) {
                console.log('Connected: ' + frame);
                stompClient.subscribe('/topic/messages', function(messageOutput) {
                    showMessageOutput(JSON.parse(messageOutput.body));
                });
            });
        }

窗口中的本地存储是上述问题的最简单解决方案。将会话 ID 存储在本地存储对象中,您可以跨其他选项卡进行访问。从对象检索会话 ID 并重用于连接。

例:

localStorage.setItem('sessionId', '123abc');

在其他选项卡中检索相同的对象:

localStorage.getItem("sessionId");

您可以参考以下链接了解如何使用本地存储:https://developer.mozilla.org/en/docs/Web/API/Window/localStorage

相关内容

  • 没有找到相关文章

最新更新