我正在将spring web-socket集成到Web应用程序中.而且我想将这个用于两次在ajax中花费很长时间的调用.根据我的理解,我看到有关于如何进行此操作的不同设计选择.我正在考虑以下问题,你能告诉我什么是最好的选择,如果是这样的话
1)一旦用户通过SockJS登录应用程序并打开套接字连接,并使用此连接发送消息并订阅我想要进行的两个调用.我对此设计的一个问题是,如果用户只是关闭浏览器,套接字连接是否会保持打开状态?
2)为每个呼叫打开一个套接字连接,并在收到消息后将其关闭,但这里每次都需要大量资源来建立连接.
我对spring-websocket,SockJS和STOMP的东西很新,所以让我知道我的理解在任何地方都是错的?
提前致谢
当用户关闭浏览器时,Web Socket将被断开连接.您可以在服务器端处理它.我的意思是,您可以再次通知其他用户或其他用户.
浏览器加载后,您需要打开Web套接字连接一次.您可以在浏览器打开时保存此连接.请勿在通话后断开连接.只是停止发送数据包.
我认为这个设计会对你有所帮助.
一些有用的链接:
在Spring 4中检测WebSocket连接和断开连接
关于断开连接的官方问题
更新(2016年3月19日):
有并发性会帮助你.这意味着每个新连接都将由新线程处理.因此,它们可以并行工作.当然,线程的数量必须受ThreadPool的限制.所以,这类问题已经在Spring Web Socket中得到解决和实现.
如果您对基础理论感兴趣,那么您可以阅读这个答案