默认
打赏 发表评论 33
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
楼主的思路很好,但是小弟还有一事不明啊,
1.客户端在线,直接推送消息给客户端,可是客户端的在线状态是不准确的,可能推送失败,那么这个时候怎么累加未读数,是在线的时候推送完后,等客户端ack么,如果等不到认为这条消息是离线消息,然后累加未读?
2.未读消息计数器里有个lastMsg,这个存储的是最后的N条消息,是这个什么时候下发给客户端呢,是客户端点击对话页进去后,下发给客户端,还是客户端拉取拉取未读气泡的时候,就下发,然后客户端打开对话框直接本地取这N条,还是客户端打开聊天对话框的时候,通过http接口取这儿N条
谢谢啦~
评论 33
引用:JackJiang 发表于 2020-08-06 12:33
1、不要用推,还是要用拉简单,这是主流作法。
2、文中的意思是拉未读数的时候就取首屏。

1.拉的话是拉消息吧,未读数怎么计算呢,
2.还有就是如何判断是在线消息还是离线消息,因为在线状态不准确
3.离线消息删么?如果删的话,怎么解决离线消息的衔接问题,比如这样一种情况,和一个联系人有500条离线消息,拉取到倒数第200条的时候,客户端离线了,这时候还剩下300条没拉完,又产生了100条,那么当客户端拉取完这新产生的100条后,是请求本地还是请求服务器,如果是请求服务器,那么服务器只会给之前剩下的300条,客户端还得做本地逻辑兼容吧
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部