使用socket.io的一个进程,负责向浏览器端推送消息。当需要推送消息的时候,如何通知到这个“进程”??
发布于 11 年前 作者 bornkiller 4536 次浏览 最后一次编辑是 8 年前

假设五个用户处于已登录状态,当一个用户写了新博文,处理业务逻辑的进程把博文写入数据库,然后负责推送的这个进程向其他四个人推送通知,这个应该怎么实现?或者说处理业务逻辑的进程如何通知到负责推送的这个进程,有点绕口,大概是这个意思。不甚感激。

4 回复

你要把消息发到服务器然后再从服务器广播到其余客户端

我是这样处理的,socket.io 连接建立后 export 一个io对象, io对象传入到后台作业(我用的是kue),那么每次有推送需求时建立一个job,kue进行推送处理。。好像说得有点绕。

一开始我也是连接到服务端再通过服务端广播到客户端。。

我不太想搞这么复杂。我用socket.io listen一个简单的HTTP服务器对象,只接受来自业务逻辑进程发出的HTTP请求,然后基本上就可以实现目的了。

应该单独搭建一个socket.io的监听,把业务逻辑的线程也作为socket.io的一个客户端(使用socket.io-client库),完成写数据库的逻辑后向监听服务中发一条消息,然后监听服务广播一条消息到所有的浏览器客户端。

回到顶部