【发布时间】:2023-03-18 01:13:01
【问题描述】:
我正在构建一个聊天功能(网络应用程序),其中用户有一个可以与之聊天的朋友列表。朋友可以在线或离线,例如在 Facebook 中。由于该应用程序是基于 REST api 构建的,因此我不保存会话,并且所有身份验证都是无状态的。
所以我的问题是,我如何知道列表中谁在线或离线?实现这一点的最佳方法是什么?
【问题讨论】:
标签: java web-services rest web-applications
我正在构建一个聊天功能(网络应用程序),其中用户有一个可以与之聊天的朋友列表。朋友可以在线或离线,例如在 Facebook 中。由于该应用程序是基于 REST api 构建的,因此我不保存会话,并且所有身份验证都是无状态的。
所以我的问题是,我如何知道列表中谁在线或离线?实现这一点的最佳方法是什么?
【问题讨论】:
标签: java web-services rest web-applications
通常对于聊天应用程序,您只需在一段时间后从客户端向服务器发送消息,如果未收到消息,则用户处于离线状态。
我不是 Java 开发人员,但我建议您查看 WebSockets 进行聊天。希望对您有所帮助。
【讨论】:
创建两种不同的频道类别,一种用于朋友,另一种用于实际消息。然后,您可以在朋友加入/离开时向朋友频道发送更新。
然后每个客户端将有两个订阅
例如 /friends/xxx 和 /chatMessages/xxx 其中 xxx 是用户 ID(或者可能是聊天室的名称)
【讨论】:
friend 频道发送一条FriendJoined 消息。当他们离开时,您会发送一条 FriendLeft 消息等。