Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SpringJavaWebSockets用户之间的消息传递_Java_Spring_Websocket - Fatal编程技术网

SpringJavaWebSockets用户之间的消息传递

SpringJavaWebSockets用户之间的消息传递,java,spring,websocket,Java,Spring,Websocket,这是关于WebSocket和用户间消息传递体系结构的问题。我所做的: 客户端: 使用参数-conversation uuid将消息发送到服务器。我还订阅了新消息必须出现的主题 服务器端: 当我收到带有会话uuid的消息时,我启动调度程序,它将会话的新消息发送到主题 但是可能会有很多对话,所以我在我的控制器类中得到了类“conversationSchedulers”的字段-它是HashMap,其中键是用户名,值是CurrentScheduler,它为对话发送新消息。当用户希望接收其他对话的新消息时

这是关于WebSocket和用户间消息传递体系结构的问题。我所做的:

客户端: 使用参数-conversation uuid将消息发送到服务器。我还订阅了新消息必须出现的主题

服务器端: 当我收到带有会话uuid的消息时,我启动调度程序,它将会话的新消息发送到主题

但是可能会有很多对话,所以我在我的控制器类中得到了类“conversationSchedulers”的字段-它是HashMap,其中键是用户名,值是CurrentScheduler,它为对话发送新消息。当用户希望接收其他对话的新消息时,他单击web应用程序中的对话,然后下一个代码开始工作:

客户端: 使用新会话uuid发送消息

服务器端: 获取以前运行的调度程序-如果是-取消它,并使用新的会话uuid运行新的调度程序

一切都很顺利。。。当有一个选项卡包含消息时。当用户打开两个或多个选项卡时,所有体系结构都会崩溃。因为我只接受一个消息调度程序。。。只能打开一个对话

在那一刻,我有了一个想法-接受多个调度器同时与多个用户进行消息传递,但我没有这样做,因为在消息传递页面上我有一个按钮来编写新消息,当用户想要编写新消息时,来自其他用户的所有新消息都必须停止发送到客户端,但我不能阻止他们,因为用户有两个标签。停止所有调度程序,这意味着停止所有选项卡上的消息传递。这是一个问题。我可能会选择错误的架构吗?或者websockets这样的任务是个坏主意?

请查看链接