Spring Java WebSockets用户之间的消息传递

时间:2014-03-30 19:11:32

标签: java spring websocket

这是关于websockets和用户之间消息传递架构的问题。我做了什么:

客户方: 使用参数 - 对话uuid向服务器发送消息。此外,我订阅了必须出现新消息的主题。

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

但是有很多谈话可能,所以我的控制器课程我得到了课堂和#34; conversationSchedulers" - 它是HashMap,其中key是用户名,值是当前调度程序,它发送新的消息以进行对话。当用户想要收到其他会话的新消息时,他点击Web应用程序中的对话,下一个代码就可以了:

Cliend方面: 使用新会话发送消息uuid。

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

一切都有效......当有一个带有消息的标签时。当用户打开两个或更多选项卡时 - 所有架构都变成了地狱。因为我只接受一个用于消息传递的调度程序...只能打开一个对话。

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

0 个答案:

没有答案