服务时,可通过发起好友未读消息推送的命令,向服务器获得之前的未读消息(网络不稳定断线重连)
当ws连接成功时,可通过该命令获取所有的未读好友消息:
`{"op":4001,"args":{"userId...":null,"size":5},"msg":"","flagId":111}`
其中`userId` 为限制单独一个好友的未读消息,可不传
其中`size`为每次响应条数,默认为5,可不传
服务器将响应...为了服务端性能问题,所有消息记录,好友消息,群成员消息将缓存到客户端,当用户登录成功时
直接显示之前登录时的所有状态(消息列表,最后一条消息显示等)
当新设备登录时,只获取未读消息列表,其他消息需要点击某个好友...所以需要使用task做异步推送:
当A客户端发送一条消息,先存入数据库,并调用task进行异步群发推送,同时给A客户端响应ok,代表接收到此消息
通过easyswoole的task组件,进行推送:...,会附带flagId
因此,当客户端发送消息时,新增一个flagId的定时器,当定时器到期却没有接收到服务端响应消息时,判断该条消息发送失败,显示红色感叹号,提示用户重发
当服务端响应成功时,将取消这个定时器