客户端重新连接到服务器后,从客户端向客户端发送Java消息

时间:2017-10-24 13:14:53

标签: java sockets messaging

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

假设客户A和客户B:

  1. 客户端A向客户端B发送消息,但客户端B处于脱机状态
  2. 客户端消息必须以某种形式存储在服务器上(我想要 知道)
  3. 当客户端B连接到服务器时,应该会收到它在离线时发送给该客户端的所有消息。
  4. 所有内容都应该使用套接字在Java中完成。

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

1 个答案:

答案 0 :(得分:0)

您可以使用不同类型的存储 - 数据库,内存,某些云存储,纯文本文件等。因此,例如,如果您将所有消息存储在内存中(以使其更简单)并且您有每个消息和发送方和接收方的递增ID(我猜您可以以不同的方式执行此操作,但我只是给出建议)。

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