gpt4 book ai didi

java - 带有 sockjs 和 stomp 客户端设计的 Spring websocket

转载 作者:搜寻专家 更新时间:2023-11-01 02:05:44 24 4
gpt4 key购买 nike

我正在将 spring web-sockets 集成到一个 web 应用程序中。我想将它用于两个在 ajax 中花费很长时间的调用。根据我的理解,我看到关于如何处理这个问题有不同的设计选择。我正在考虑以下问题,你能告诉我什么是最好的选择吗?如果是,为什么?

1) 一旦用户通过 SockJS 登录到应用程序,就打开一个套接字连接,并使用此连接发送消息并订阅我想要进行的两个调用。我对这个设计有一个问题是,如果用户只是关闭浏览器,套接字连接是否会保持打开状态?

2) 每次调用都打开一个socket连接,收到消息后关闭,但是这里每次建立连接都占用大量资源。

我对 spring-websocket、SockJS 和 STOMP 东西很陌生,所以让我知道我的理解有什么地方是错误的吗?

提前致谢

最佳答案

  1. 当用户关闭浏览器时,Web Socket 将断开连接。您可以在服务器端处理它。我的意思是,您可以再次通知其他用户或其他内容。

  2. 您需要在浏览器加载后打开一次网络套接字连接。您可以在浏览器打开时保存此连接。通话后不要断开连接。只是停止发送数据包。

我认为这个设计会对你有所帮助。

一些有用的链接:

Detecting WebSocket Connects and Disconnects in Spring 4

Official Issue about disconnecting

更新(2016 年 3 月 19 日):

concurrency 会帮助你。这意味着每个新连接 都将由新线程 处理。因此,它们可以并行。当然,线程数必须受限于ThreadPool。所以,这类问题已经在 Spring Web Socket 中得到解决和实现。

如果你对基础理论感兴趣,那么你可以阅读this answer

关于java - 带有 sockjs 和 stomp 客户端设计的 Spring websocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34297219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com