tcp连接进行销毁并且可能没有close事件提示,所以我们在websocket中提供了ping的命令,该命令发起后,服务器将响应pong,完成一次通信:
## ping
发送:直接给客户端发送 "ping...B发送消息,服务器向B推送时,该条消息记录初始isRecv为0,只有当B客户端接收到消息,并且向服务器发送已接收命令时,才会置为1:
### 消息接收状态
`{"op":4002,"args":{"msgId...websocket服务时,可通过发起好友未读消息推送的命令,向服务器获得之前的未读消息(网络不稳定断线重连)
当ws连接成功时,可通过该命令获取所有的未读好友消息:
`{"op":4001,"args...,所有消息记录,好友消息,群成员消息将缓存到客户端,当用户登录成功时
直接显示之前登录时的所有状态(消息列表,最后一条消息显示等)
当新设备登录时,只获取未读消息列表,其他消息需要点击某个好友/群,才会进行显示...,只需要获得群成员的userId,即可获得当前所有在线成员的fd,进行遍历推送
服务端推送问题
当A客户端在群发送一条消息时,由于群成员可能有很多,如果直接同步推送给所有群成员,会造成A客户端等待响应时间过长的情况