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