【问题标题】:How do I implement online/offline feature with REST based application?如何使用基于 REST 的应用程序实现在线/离线功能?
【发布时间】:2023-03-18 01:13:01
【问题描述】:

我正在构建一个聊天功能(网络应用程序),其中用户有一个可以与之聊天的朋友列表。朋友可以在线或离线,例如在 Facebook 中。由于该应用程序是基于 REST api 构建的,因此我不保存会话,并且所有身份验证都是无状态的。

所以我的问题是,我如何知道列表中谁在线或离线?实现这一点的最佳方法是什么?

【问题讨论】:

    标签: java web-services rest web-applications


    【解决方案1】:

    通常对于聊天应用程序,您只需在一段时间后从客户端向服务器发送消息,如果未收到消息,则用户处于离线状态。

    我不是 Java 开发人员,但我建议您查看 WebSockets 进行聊天。希望对您有所帮助。

    【讨论】:

    • 不一定是 Java,而是我正在研究的方法。
    • 那么我肯定会建议您socket.io 并查看他们的演示页面。非常简单。
    【解决方案2】:

    创建两种不同的频道类别,一种用于朋友,另一种用于实际消息。然后,您可以在朋友加入/离开时向朋友频道发送更新。

    然后每个客户端将有两个订阅

    例如 /friends/xxx/chatMessages/xxx 其中 xxx 是用户 ID(或者可能是聊天室的名称)

    【讨论】:

    • 好吧,它没有回答这个问题。我怎么知道谁在线?
    • 当有人加入时,您会查找所有在线朋友并向每个在线朋友的friend 频道发送一条FriendJoined 消息。当他们离开时,您会发送一条 FriendLeft 消息等。
    • 我已经为每个聊天室实现了用户列表hereHere's the main class 发送消息。您会注意到,每次有人加入或离开时,它都会向“rooms/%s/users”发送消息
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    相关资源
    最近更新 更多