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

如何使用 Websocket 发送旧消息

公冶阳德
2023-03-14

我有一个工作的WebSocket示例,其中客户端从服务器接收消息。

我不确定当客户端连接时,我应该如何向客户端发送旧消息。

示例:

  • 每个客户端在连接时提供其名称
  • 服务器响应“[名称] 刚刚连接”(对所有客户端)
  • 任何新客户端都不会收到这些消息

我想知道客户端是否有任何方法可以接收旧消息(所有消息或过去 5 分钟内的消息都可以接受)。

我怀疑我可能需要自己捕获这些信息,将其存储在某个地方(如数据库),然后自己将消息发送给新客户。是这样吗,还是我错过了什么?

如果有人有伪代码,或者链接到其他人如何实现此目的的示例,那将很方便。

共有2个答案

慕容品
2023-03-14

您必须自己捕获它并将其存储在服务器上......用户连接后,您必须将该数据命名为所有连接的客户端,并将您存储的消息重新命名给已连接的用户。因此,您必须编写代码才能将数据广播给用户

顺便问一下,你用什么服务器端?(节点、Erlang等)

如果您使用node.js,可以查看以下链接

http://martinsikora.com/nodejs-and-websocket-simple-chat-tutorial

丰佐
2023-03-14

你可以这样做:

  1. 每条消息都应该有一个id-

希望有帮助

 类似资料:
  • 我正在通过在WebSocketClientFlow上遵循doc来尝试客户端websocket。

  • 我在服务器端有以下代码: 客户端代码: 我的行动: 我运行应用程序,以的身份登录,并启动从客户端到服务器的消息发送,我看到方法是invokes和line成功执行,但我在客户端没有看到该消息。 我怎么能 Spring Security配置: Web套接字配置: 在建议和阅读主题后,我尝试了以下方式向Spring WebSocket上的特定用户发送消息: 服务器端: 客户端: 服务器端: 客户端: 服

  • 我正在阅读《Spring in Action4》一书,以使用WebSocket上的STOMP消息传递。 假设,如下所示: 然后客户端使用以下JavaScript代码订阅目标: 则该消息将发送到目的地,如下所示: 那么,两个目的地和看起来是不同的,消息怎么可能到达客户端呢?

  • 如标题所述,我想使用RabbitMQ向Websocket发送消息。使用AngularJS前端,我想从Websocket读取RabbitMQ消息,并将它们打印到控制台。原则上,我的代码似乎是可行的,尽管我不知道如何获得消息的实际(字符串)内容? 后端:为了创建Websocket并执行路由,我使用Spring Boot和Apache Camel:http://camel.Apache.org/Spri

  • 我阅读了关于用户目的地的Spring文档。我想使用方法仅向特定用户发送消息。 这是java代码: 这是客户端js代码: 首先,考虑用户价值是否正确? StampClient.connect("myuser",... 为什么这个测试不起作用?此用户未收到任何消息。如果我将目的地切换到,并将方法更改为,这将起作用,但显然是作为广播,而不仅仅是根据请求发送给特定用户。 我试图设置一个回复单用户与此代码:

  • 我试图使用Netty 4.0.8创建一个相当简单的WebSocket服务器。我有基本的握手设置和工作。但是从一个单独的线程发送的消息似乎没有传到客户端。 客户机/服务器交互的工作方式是,客户机启动连接,然后通过WebSocket发送初始消息(“hello”)。服务器立即响应。此消息通过Chrome开发工具传递并可见。写入此消息后,我将存储在中。此初始化如下: 然后添加,如下所示: 在单独的线程(在