我想使用 Spring websockets 实现聊天。实现群组的最佳方式是什么?
- 注册一个新的
UserDestinationMessageHandler
对于像/group/{groupname}/queue/*
这样的 URL并创建一个新的UserDestinationResolver
。有这方面的例子吗? - 使 Controller 实现
ApplicationListener<SessionConnectedEvent>
。但是如何从事件中获取 session 属性呢?
在这两个选项中,我都考虑到将用户所属的组注册到 session 属性中。
最佳答案
我最终创建了一个由消息代理管理的“/topic/group/{name}/message”之类的目的地,并让用户订阅了它。 要发送消息,您可以将其发送到同一目的地,也可以将其发送到“/app/message”等目的地并让它从那里转发。后一个选项的优点是您可以过滤消息。
关于spring-websocket - Spring websocket 和群组消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30031090/