我想知道是否有任何方法可以将消息从一个客户端发送到另一个客户端,如果接收客户端未连接到服务器,但是在一段时间后连接,则该客户端应该接收这些消息。
假设客户A和客户B:
所有内容都应该使用套接字在Java中完成。
是否有任何机制可以存储这些离线消息,然后在连接到服务器后立即将它们发送到客户端?
答案 0 :(得分:0)
您可以使用不同类型的存储 - 数据库,内存,某些云存储,纯文本文件等。因此,例如,如果您将所有消息存储在内存中(以使其更简单)并且您有每个消息和发送方和接收方的递增ID(我猜您可以以不同的方式执行此操作,但我只是给出建议)。
因此,当新客户端连接到服务器并进行身份验证时(为了确保客户端B加入聊天,它与之前的客户端B相同),客户端可以“告诉”服务器收到的最后一个消息ID。然后服务器可以将错过的消息推送到客户端。当然,这很大程度上取决于您的模型以及您希望实现的目标。可能在内存中存储消息不是最好的,你可以使用数据库或其他东西 - 根据你的需要。