var esocket;
io.on('connection', (socket) => {
esocket = socket
})
app.get('/iWantToCreateSocketListenerHere', (req, res) => {
if(req.body.listenOnSomething) {
esocket.on('new Event',() => {})
}
})
我想知道这是否是在 io.on() 之外使用套接字的正确方法?
我想知道这是否是在 io.on() 之外使用套接字的正确方法?
不,这是不正确的。 这种类型的代码不适用于为多个用户提供服务的服务器。 您将来自特定客户端的套接字插入到模块级变量中,然后在稍后发出可能来自或可能不是来自同一客户端的传入请求时尝试使用该变量。
这种类型的设计在具有多个可能客户端的服务器中无法正常工作。
由于您的问题没有描述您想要解决的实际问题,因此我们无法真正建议解决方案是什么。