【问题标题】:WebSocket best practiceWebSocket 最佳实践
【发布时间】:2014-02-02 20:05:43
【问题描述】:

我正在使用 Websockets 并且我已经以相当多的 socket.on(msg, function()) 事件结束。所以我想知道最好的做法是什么,只需为每种情况添加 socket.on 事件,或者只使用一个带有子事件的事件,这些子事件将在

中处理
switch(json.type) {
       case 'maps' : add_maps_from_json(json);
                    break; 
       case 'fList': show_floor_list(json); 
                    break; 
       ...
       case 'xxx':

【问题讨论】:

    标签: javascript websocket


    【解决方案1】:

    由于触发了单个“onmessage”事件,因此使用单个处理程序似乎是最干净的。否则事情很快就会变得一团糟,因为没有一个中心位置可以清楚地显示事件触发后会发生什么。

    此外,对于大量的处理程序,这可能是很多代码,所有这些代码都会在每条消息上被调用。这对于很多用例来说可能并不重要,但是对于高消息频率和/或时间关键处理,使用单一功能似乎是更有效的解决方案。

    顺便说一句,Mozilla 在其WebSocket tutorial 中提供了一个处理函数

    【讨论】:

      【解决方案2】:

      这两种方法都可以。
      但是,如果您使用一个事件,那么您可以对消息进行一些常见的预处理或后处理。在单独的 socket.on 事件中执行此操作会强制您复制代码(即使预处理/后处理是在单独的方法中完成的)。
      所以,我会选择 one socket.on 方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-05
        • 2014-12-21
        • 2010-12-23
        • 2010-10-14
        • 2023-03-19
        • 2011-11-08
        相关资源
        最近更新 更多