【发布时间】:2019-05-24 02:06:08
【问题描述】:
我正在尝试使用 Typescript 让 socketIO 服务器在 NodeJS 上工作。 我想要创建的具体行为是它会每 1000 毫秒向所有连接的套接字(包括它自己)发送一条消息。
我的基本套接字正在工作,当客户端连接时,'on connect' 消息会触发,这很好。
this.io.on('connection', (socket: Socket)=>{
console.log('a user connected');
});
所以现在要向所有客户发送消息,我必须:
this.io.emit("newTest","Test")
然后听这个(在同一台服务器上直接下面:)
this.io.on("newTest",(socket:Socket)=>{
console.log("Echoo")
})
但我从来没有得到控制台记录的“回声”。 实际上,我也在监听客户端(角度 6 应用程序),当该应用程序正确连接时,它会显示“用户已连接”......(因此套接字正在工作)......this.io。 emit() 似乎并没有真正发送消息。
如果我这样做,我可以发送消息:
this.io.on('connection', (socket: Socket)=>{
console.log('a user connected');
socket.emit("newTest","test")
});
而且效果很好。但是我不能这样做。io.emit().. 向所有客户端发出。我可以在连接时手动尝试捕获数组中的所有“套接字”对象,然后每当我收到一条消息时,我都会遍历它们并执行 socket.emit.. 但必须有更好的方法,我错过了什么?
【问题讨论】:
标签: node.js typescript socket.io emit