当前位置: 首页 > 知识库问答 >
问题:

Spring WebSocket-从websocket服务器外部向用户目的地发送消息

邹毅
2023-03-14

我很清楚,我必须使用完整功能的broker支持,将STOMP作为子协议。我们已经使用rabbit进行通信,所以它是显而易见的选择。

文档说明“STOMP broker中继还为每个连接的WebSocket客户端创建一个单独的TCP连接。”它是每个用户会话的单独连接,而不是每个用户。此外,当发送端位于同一应用程序(负责处理用户会话的应用程序)内时,每个会话都创建一个单独的队列。我认为,希望发送消息的其余应用程序必须知道当前活动的会话,并将消息发送到代理处的相应队列。

Spring Jira中的这个问题或多或少与我的问题有关。一个可能的解决方案是实现一个分布式的UserSessionRegistry。

另一种方法是使用作为解决同一问题的方法提供的选项--启用带有未解析用户目的地的广播消息。但在这种情况下,我的所有应用程序都将收到这些广播消息。并且我只希望前面提到的API网关应用程序接收它们(它将是唯一一个向客户端公开并打开和关闭用户会话的应用程序)。

共有1个答案

壤驷坚
2023-03-14

我想向tomcat应用程序添加websocket支持

“Tomcat应用程序”是Tomcat REST API网关吗?我不明白为什么需要一个功能齐全的经纪人,或者至少这看起来不相关。

发起更新的应用程序服务器需要某种方式通知网关/WebSocket服务器,后者会将消息广播给订阅者。网关/WebSocket可以接受HTTP上的调用,即一个简单的@RequestMapping方法,通过SimpMessagingTemplate广播来处理请求。

 类似资料:
  • 问题内容: 我是golang和websocket的新手。 我正在尝试编写一个websocket服务器,一旦握手完成,该服务器可以将消息主动发送到客户端。 但是我的服务器只会在收到来自客户端的请求后才将消息发送给客户端。 有谁知道如何实现此功能,或者在哪里可以找到相关的答案? 非常感谢。 源代码如下: 问题答案: 尝试打包websocket。 这是Godoc的一个简单示例:

  • 我正在阅读websockets,在阅读了大量的教程和博客(主要是关于创建一个简单的聊天应用程序)之后,仍然有一个问题没有得到回答: 那么,是否不可能让一些外部应用程序或事件调用一些脚本(bash或php)来使用现有运行的websocket实例向一个或多个连接的浏览器(websocket客户端)发送/广播一些信息(文本)? 抱歉,如果这是一个愚蠢的问题,但我无法找到答案,通过阅读这些博客在网上。 谢

  • 我正在编写自己的websocket服务器和客户端。我成功地处理了握手并建立了联系。 现在我正在编写send_message函数,它创建了一个合适的框架。下面的例子只是为了这个问题,它不是我最终打算写的,这只是我尝试给我相同的结果的许多方法中的一种。 输入:以上函数应发送 第一个字节 第一位设置为1-,表示这是消息的最后一帧 第二、第三和第四个-所有的零,对于这个例子来说是不相关的 以下四位-000

  • 问题内容: 我将实现类似于Facebook通知和此网站的内容(StackOverflow的通知会通知我们是否有人为我们的问题写评论/答案等)。请注意,用户将使用我的应用程序作为网站而不是移动应用程序。 我遇到以下获取结果的答案,但我需要推送结果而不是获取结果。 根据建议,我在实体类中创建了一个简单方法,并向其中添加了@PostPersist,但此方法不起作用,因此基于此答案,我添加了persist

  • 我正在通过Spring集成设置一个TCP客户端,以字符串作为有效负载发送消息,不期望返回。也许序列化器/反序列化器不能正常工作?对不起,我正在学习Spring集成。 我可以通过oepnssl连接到外部TCP服务器: 我需要发送的命令是“sessions.list\n。\n”。 现在我构建了一个试图连接到服务器的tcp客户端: spring上下文。xml 因此,在这个repo之后,字符串应该转换为字

  • 我是新手。NET(C#)和WebSocket。。。我已经安装了VS2012和Windows Server 2012,并且已经启动并运行了WebSocket。我似乎无法从一个套接字接收消息并将其发送到另一个特定的套接字。唯一的选择似乎是向所有套接字广播消息。有没有一种方法可以将消息只发送给特定的用户?我希望聊天室主持人有机会拒绝不适当的帖子。