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