有人知道私信功能的提示有信息怎么做吗?
发布于 2年前 作者 janry 848 次浏览

我的大致思路是在后端用setinterval检查当前用户是否有未读信息,如果有的话,就用socket.io向前端发送消息,让前端提示用户有私信,不过我感觉我这个思路有点简陋,不知道大家是怎么弄的

10 回复

为嘛要循环查询呢?有人发私信先判断收信人是否在线,在线直接socket.io推送,不在线计入未读消息,用户上线后首先查询是否有未读消息,有,直接推送。

额,因为我希望用户之间能够实时通信啊,当用户A在给用户B发送私信的时候,并且两者都是登录状态,则可以进行实时通信

@janry 对啊,没问题啊,有人发私信的时候首先判断收信人是否在线,在就直接推送了啊,没在的才计入未读消息待收信人上线的时候再推送啊。

@thesadboy 哦,你的意思是在发送端进行推送对吧?看来我就是在这里不知道怎么做了,这个socket推送是利用broadcast进行推送的对吧?如果对方在线就让其加入room是吗?这样的话就可以进行管道式的推送信息吗?那这样的话就会有很多个room了咯

@janry 你到底是要做room还是单一推送?可以看看我的聊天室的demo,是要这样的么?WECHAT

@thesadboy 呵呵,我也不知道怎么来解释了,我就是希望做一个私信功能,如果用户A给用户B发送消息,则将消息存入数据库,默认是标记为未读消息,在用户B端,用户肯定得轮询判断是否有未读信息吧,如果有的话就得给用户的前端推送一个消息提示,让用户知道有消息来了

@janry 你在A每发送一个消息的时候都可以直接查询B是否在线啊,在线就直接emit了就行了啊,还需要轮询?

@thesadboy 终于懂了,太感谢了,你有qq吗,加下吧,以后多多请教

@janry 你动作真快,刚想回你,你就闪人了563992433

回到顶部