V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
notedit
V2EX  ›  问与答

关于socket.io的Broadcast

  •  
  •   notedit · 2013-06-16 23:09:51 +08:00 · 2571 次点击
    这是一个创建于 3989 天前的主题,其中的信息可能已经有所发展或是发生改变。
    刚开始使用socket.io, server端可以向客户端broadcast一些信息. 我猜里面的实现细节是有一个大的字典保持了所有的客户端的连结,broadcast的时候会遍历这些客户端,并发送信息.
    所以这里问题就来了, 当server端只有一个线程的时候是没问题的,如果server端是多个进程呢?同一namespace下的客户端有可能连结到不同的进程,这个时候一个server进程进行broadcast的时候遍历的就不是全部的客户端.

    不知道真实使用场景下有没有遇到这种情况的? 以及解决方案
    第 1 条附言  ·  2013-06-17 00:06:42 +08:00
    找到解决方法了 通过改变socket.io的store 可以实现多进程时候的broadcast

    https://github.com/LearnBoost/socket.io/wiki/Configuring-Socket.IO
    2 条回复    1970-01-01 08:00:00 +08:00
    chemhack
        1
    chemhack  
       2013-06-16 23:34:10 +08:00
    nodejs显然是单线程的
    notedit
        2
    notedit  
    OP
       2013-06-16 23:54:28 +08:00
    @chemhack 你的回复真的跟我的问题没关系
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2278 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 09:21 · PVG 17:21 · LAX 02:21 · JFK 05:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.