javascript – 在(“消息”)处理程序上定义Socket.io的最有效方法

前端之家收集整理的这篇文章主要介绍了javascript – 在(“消息”)处理程序上定义Socket.io的最有效方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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会推荐一种浪费内存的做法?我们是否希望在“连接”回调的闭包内保留套接字的有状态变量?

解决方法

从另一个角度来看,第一种形式很容易阅读(因为省略了很多细节).我认为这种形式最能说明图书馆的运作方式.我相信,Node网站本身使用了类似的风格,原因相同.我认为这正是它们在那些地方使用的原因.

几分钟后阅读博客和讨论表明开发人员通常选择传递命名函数.虽然我确信它有性能提升,但主要动机无疑是可读性.我认为随着您的功能增长,您会发现第二种形式(或更多绘制形式)更易于使用.

原文链接:https://www.f2er.com/js/157209.html

猜你在找的JavaScript相关文章