【问题标题】:Java-messages to client from server after client reconnects to server客户端重新连接到服务器后,从服务器向客户端发送 Java 消息
【发布时间】:2017-10-24 13:14:53
【问题描述】:

我想知道是否有任何方法可以将消息从一个客户端发送到另一个客户端,并且如果接收客户端未连接到服务器,但在一段时间后连接,则该客户端应该接收这些消息。

假设客户 A 和客户 B:

  1. 客户端 A 向客户端 B 发送消息,但客户端 B 离线
  2. 客户端消息必须以某种方式存储在服务器上(我想要 知道)
  3. 当客户端 B 连接到服务器时,它应该会收到所有在它离线时发送给它的消息。

一切都应该在 Java 中使用套接字来完成。

是否有任何机制来存储这些离线消息,然后在客户端连接到服务器后立即将它们发送给客户端?

【问题讨论】:

  • 这听起来像是 JMS 的工作。
  • 但是如何在Java socket编程中使用JMS

标签: java sockets messaging


【解决方案1】:

您可以使用不同类型的存储 - 数据库、内存、一些云存储、纯文本文件或其他任何东西。因此,例如,如果您将所有消息存储在内存中(以使其更简单),并且您为每条消息以及发送者和接收者都有一个递增的 ID(我想您可以以不同的方式进行操作,但我只是给出一个建议)。

因此,当新客户端连接到服务器并进行身份验证(以确保客户端 B 加入聊天时,它与之前的客户端 B 相同)时,客户端可以“告诉”服务器收到的最后一条消息 ID。然后服务器可以将错过的消息推送给客户端。当然,这在很大程度上取决于您的模型以及您想要实现的目标。消息的内存存储可能不是最好的,您可以使用数据库或其他东西 - 取决于您的需要。

【讨论】:

    猜你喜欢
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 2016-07-13
    • 1970-01-01
    相关资源
    最近更新 更多