Socket.io的示例都遵循这个模式。
如果是这样,为什么Socket.io会推荐一种浪费内存的做法呢?我们是否希望在“connection”回调函数的闭包中保留与socket相关的有状态变量?
io.sockets.on("connection", function(mySocket){
mySocket.on("my message", function(myData){
...
});
});
我觉得这会为每个连接创建一个新的回调函数。如果假设每个套接字都以相同的方式响应消息,那么定义一次处理程序以适用于所有套接字是否更加内存高效:
function myMessageHandler(data){
...
}
io.sockets.on("connection", function(mySocket){
mySocket.on("my message", myMessageHandler);
});
甚至包括这个:
io.sockets.on("my message", function(mySocket, myData){
...
});
如果是这样,为什么Socket.io会推荐一种浪费内存的做法呢?我们是否希望在“connection”回调函数的闭包中保留与socket相关的有状态变量?