我想在 Spring Web(由 Spring Boot 管理)中实现一个 WebSocket 服务器,它允许连接的客户端只接收一个数据流,例如简单的纯文本或 STOMP 消息。 我正在阅读 documentation 和一个 guide 在官方网站上,但在这些情况下,他们考虑双向对话(客户端也可以向服务器发送消息)。
对于我的场景,以正确的方式表示 WebSockets(是的,我是这个领域的新手)?
如果是,我该如何实现所说的 WebSocket?我应该定义一个
@Controller
和一个处理程序?此外,是否可以只允许一个人的通信? 给定客户端(通过设置路由、IP 地址、 token 等)?
干杯,V。
最佳答案
“接收数据流”是针对您的场景的技术解决方案,而不是场景本身。所以我无法回答这个问题。
只有传入请求才需要 Controller 。在您的情况下,客户端会订阅一个主题,而服务器会发布数据。为此,您按照20.4.2 启用 WebSocket 上的 STOMP 中所述注册代理。然后按照20.4.5 发送消息 中的描述将数据发送到该代理/主题。经纪人然后交付给客户。那将是使用 STOMP 的解决方案。如果直接使用 Websocket,您就得靠自己了。
是的,但这不是 Spring 的 websocket 支持的一部分。如果愿意,您可以为此使用 Spring Security。
它的值(value):websocket 连接始终是双向的,无论您如何处理它。
关于java - 在 Spring 中定义一个 "send-only"WebSocket 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25548350/