Spring 带有 sockjs 和 stomp 客户端设计的 websocket
Spring websocket with sockjs and stomp client side design
我正在将 spring 网络套接字集成到网络应用程序中。我想将它用于在 ajax 中花费很长时间的两个调用。根据我的理解,我看到关于如何处理这个问题有不同的设计选择。我正在考虑以下问题,你能告诉我什么是最好的选择吗?如果是的话,为什么
1) 一旦用户通过 SockJS 登录到应用程序,就打开一个套接字连接,并使用此连接发送消息并订阅我想要进行的两个调用。我对这个设计有一个问题是,如果用户只是关闭浏览器,套接字连接是否会保持打开状态?
2) 每次调用打开一个socket连接,收到消息后关闭,但是这里每次建立连接都占用大量资源
我对 spring-websocket、SockJS 和 STOMP 东西还很陌生所以让我知道我的理解哪里有错?
提前致谢
当用户关闭浏览器时,Web Socket 将断开连接。您可以在服务器端处理它。我的意思是,你可以再通知其他用户什么的。
您需要在浏览器加载后打开一次网络套接字连接。您可以在浏览器打开时保存此连接。通话后不要断开连接。就停止发送数据包。
我觉得这个设计对你有帮助。
一些有用的链接:
Detecting WebSocket Connects and Disconnects in Spring 4
Official Issue about disconnecting
更新(2016 年 3 月 19 日):
有并发可以帮到你。这意味着每个 新连接 都将由 新线程 处理。因此,它们可以并行工作。当然,线程的数量 必须 受 ThreadPool 的限制。所以,这类问题已经在 Spring Web Socket.
中解决和实现了
如果你对基础理论感兴趣,那么你可以阅读
我正在将 spring 网络套接字集成到网络应用程序中。我想将它用于在 ajax 中花费很长时间的两个调用。根据我的理解,我看到关于如何处理这个问题有不同的设计选择。我正在考虑以下问题,你能告诉我什么是最好的选择吗?如果是的话,为什么
1) 一旦用户通过 SockJS 登录到应用程序,就打开一个套接字连接,并使用此连接发送消息并订阅我想要进行的两个调用。我对这个设计有一个问题是,如果用户只是关闭浏览器,套接字连接是否会保持打开状态?
2) 每次调用打开一个socket连接,收到消息后关闭,但是这里每次建立连接都占用大量资源
我对 spring-websocket、SockJS 和 STOMP 东西还很陌生所以让我知道我的理解哪里有错?
提前致谢
当用户关闭浏览器时,Web Socket 将断开连接。您可以在服务器端处理它。我的意思是,你可以再通知其他用户什么的。
您需要在浏览器加载后打开一次网络套接字连接。您可以在浏览器打开时保存此连接。通话后不要断开连接。就停止发送数据包。
我觉得这个设计对你有帮助。
一些有用的链接:
Detecting WebSocket Connects and Disconnects in Spring 4
Official Issue about disconnecting
更新(2016 年 3 月 19 日):
有并发可以帮到你。这意味着每个 新连接 都将由 新线程 处理。因此,它们可以并行工作。当然,线程的数量 必须 受 ThreadPool 的限制。所以,这类问题已经在 Spring Web Socket.
中解决和实现了如果你对基础理论感兴趣,那么你可以阅读