已关闭。此问题需要更多focused。当前不接受答案。
**想要改进此问题吗?**更新问题,使其仅关注editing this post的一个问题。
1年前关闭。
Improve this question
我一直在思考Instagram/Facebook Messenger的活动状态和消息读取功能是如何为中国的WeChat应用服务的。所以我只是好奇这些功能是如何工作的,它们是如何编程的。所以我只是好奇是否有任何来源可以说明这些功能在真实的生活中是如何实现的。
已关闭。此问题需要更多focused。当前不接受答案。
**想要改进此问题吗?**更新问题,使其仅关注editing this post的一个问题。
1年前关闭。
Improve this question
我一直在思考Instagram/Facebook Messenger的活动状态和消息读取功能是如何为中国的WeChat应用服务的。所以我只是好奇这些功能是如何工作的,它们是如何编程的。所以我只是好奇是否有任何来源可以说明这些功能在真实的生活中是如何实现的。
1条答案
按热度按时间guz6ccqo1#
这将需要在客户端(Android/iOS应用程序、Web客户端)和服务器之间进行多次往返。
message read status
,触发点应来自客户端应用程序。当User A
时,例如打开对方用户特定的聊天应用程序窗口(User B
),则它需要通知服务器。随后服务器将通知User B
User A
已打开聊天窗口。User B
上的应用程序将需要基于此新信息更改显示,例如改变滴答状态等。实现可能比这复杂一点,因为它可能必须基于每个消息的时间戳工作。
Erlang中的通知服务器可以像基于http(s)的API调用一样简单。如果需要双向持久连接,您可以使用(websocket)-网络上也有用于此的Android和iOS客户端库。
active status
可以根据用户的最后活动从服务器触发。在这种情况下,服务器将broadcast
最后活动时间戳发送给所有“朋友/联系人”,可能还包含其他信息,如用户状态和DP映像。以上是简化的流程,其中必须在服务器端完成更多的工作,例如维护所有用户的联系人列表、维护消息传递顺序、存储每个用户的最后活动的时间戳等。