【发布时间】:2021-07-05 11:30:15
【问题描述】:
我正在尝试将socket.io 与socket.on("connection", client => {...} ) 事件中的本地事件侦听器一起使用。问题是每次创建新的socket.io 连接时,它都会创建一个新的事件侦听器。这最终会导致 node.js 中出现最大侦听器错误。
我需要那个事件监听器,以便它可以等待来自应用程序其他部分的数据,然后使用返回的 socket.io client 对象将该数据发送到连接的 socket.io 客户端。
我是否应该根据documentation 简单地增加setMaxListeners?或者有什么我应该对我的代码做不同的事情来防止每次客户端连接时创建一个新的事件监听器(例如,有没有办法全局注册事件监听器,但是将新的客户端连接传递并使用到事件监听器)?
io.on('connection', client => {
//console.log("Websockets client connected")
events.on("initializePage", data => {
client.emit("initializePage", data)
})
client.on('disconnect', () => {
console.log("Socket.io client disconnected")
})
})
【问题讨论】: