socket.io – 多个事件性能

关于使用socket.io事件。

什么是更好的方法:

socket.on('message', function (message) { if(message.message1) { // do something } else if (message.message2) { // do something else } else if ... }); 

VS

 socket.on('message1', function (message) { // do something }); socket.on('message2', function (message) { // do something else }); ... 

性能下降的事件数是否有限制?

第二个选项似乎是维护和可读性选项,但是对于每种types的消息而言,事件似乎非常多。

有没有其他的编程范例或最佳做法呢?

socket.io中事件的消息路由依赖于一个对象作为映射。

实现可以在这里看到: https : //github.com/component/emitter/blob/master/index.js#L45

物体作为地图是非常快的。 在最坏的情况下(即,当优化编译器不能用类replace它们时),它们用作散列表 。

这个路由比第一个解决scheme要快得多。 不pipe你有多less种事件types,都不要使用这个解决scheme,而是使用标准的解决scheme。