【问题标题】:Stompclient/ SockJs - Receiving messages multiple times through 1-1 broker channelStompclient/ SockJs - 通过 1-1 代理通道多次接收消息
【发布时间】:2020-03-02 22:37:27
【问题描述】:

我正在开发一个聊天模块,其后端是 Java,前端是 Angular。聊天过程是这样的:

  1. 连接到 stomp 客户端
  2. 订阅频道网址,例如:queue/user-{userId}
  3. 使用stompclient->send('savemessage', {}, message)将消息保存到服务器
  4. 服务器发送确认,该消息已保存
  5. 我从代理通道向用户发送消息,例如stompclient->send('queue/user-{toUserId}', {}, message)
  6. toUserId 如果在频道中使用queue/user-{toUserId} 订阅,那么他会收到消息。 当toUserId 连接并仅订阅一次时,它工作正常。问题来了,当我打开另一个连接并在不同的浏览器或移动应用程序中订阅 toUserId 时。

问题是: userId 发送一次消息,但toUserId 收到的消息是打开的 2 个连接/订阅的 2 倍。 以前有没有人遇到过这种情况?

以下是截图:

  1. 接收消息:
  2. 发送消息:

【问题讨论】:

  • 我也有同样的问题。你找到解决办法了吗?

标签: websocket stomp sockjs


【解决方案1】:

如果您有多个聊天,则应该有多个 stompclient,每个聊天(连接)一个

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-30
  • 2017-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多