在express中路由接受到一个请求,如何把这个请求的信息通过websocket的方式主动广播给某个客户端呢?
发布于 7 年前 作者 panyunyi 4246 次浏览 来自 问答

我在做一个微信扫描二维码开门的一个项目想实现通过微信扫描二维码,后台判断权限后控制门禁开关。 目前我的逻辑是扫描二维码(实际就是访问一个url),express中接收到请求判断用户权限,权限通过就主动发送开门信息给前端。 前端控制门禁开关的是一个windows的C#程序(门禁控制器的sdk只有C#的),现在已经实现C#和express的websocket通信,但不知道如何通过一个请求的方式主动广播给某个客户端。 router.get('/', function (req, res) {}) router.ws('/echo', function(ws, req) { ws.on('message', function(msg) { console.log(msg); ws.send(1); }); }); 请问该如何实现呢?

4 回复

你应该使用pub/sub,比如fayejs这样的

@i5ting 哇~多谢大神指点!!!我这就去研究一下

既然你的c#已经与express建立了websocket连接,那么你的webserver是应该有保存c#的连接socket的,当你收到其它用户的get请求并通过权限验证后,就可以给这个保存的socket直接emit消息的,这样你的c#客户端就可以收到消息并响应开门了。

回到顶部