我现在的目标是制作一个具有WhatsApp功能的Android应用程序(不一定是WhatsApp的克隆,只需具有类似的、也许不太好的功能)。我认为重要的是群聊、在线/离线状态以及离线消息。
目前我主要了解到可以使用WebSocket服务器(因为它被介绍为可以打开无限可能性的实时解决方案),我之前也做过测试——看起来很不错。然而,我面临以下问题:
- 我不知道如何管理在线/离线状态;我是否需要自己实现?也许Android客户端每30秒向服务器查询他的朋友是否仍然连接着......
- 离线消息怎么办?如果某个人没有连接,消息将不会发送给他。那么消息是否需要存储在某个地方(比如MSSQL),当该人登录时,客户端会自动从服务器检索所有离线消息?
- 群聊怎么办?我不确定WebSocket如何实现这一点,我是否需要单独实现?这意味着要处理大量的业务逻辑(并且有很多错误可能出现)......
我知道有一个叫做XMPP的协议(它与WebSocket完全不同),但我不确定它如何与我的问题相关。XMPP是否是我的救命稻草(即是否有.NET库可以为我实现大部分功能?)。我也听说过Comet,但我不知道它有什么关系......
还有很多缺失的部分,我以为实现我的聊天服务器/客户端会很简单,但显然并不是这样。有没有一点经验的人给我一些反馈?