【问题标题】:heroku multiple dyno socket.ioheroku 多个测功机 socket.io
【发布时间】:2014-02-07 03:23:14
【问题描述】:

我正在使用 Socket.io 开发一个 node.js 应用程序,并将其部署在 Heroku Dyno 上。 Socket.io 将 RedisStore 与它的 PUB/SUB 一起使用。 Socket.io 客户端与 heroku 中的一个测功机完美配合。但是当我将 dyno 的数量增加到一个以上(比如两个)时,socket io 客户端请求不起作用。

请让我知道在为支持 socket.io 的多个 web dyno 设置 heroku 时是否需要在客户端进行任何特定配置。

【问题讨论】:

    标签: heroku socket.io multiple-instances


    【解决方案1】:

    抱歉,heroku 不支持粘性会话,而且 Socket.io 也不支持

    粘性负载平衡如果您计划分配负载 不同进程或机器之间的连接,你必须 确保与特定会话 ID 关联的请求连接到 产生它们的过程。

    Using multiple nodes

    【讨论】:

    • 取自同一篇文章:Fedor Indutny has created a module called sticky session that ensures file descriptors (ie: connections) are routed based on the originating remoteAddress (ie: IP). 所以我相信 Heroku does 支持这一点。
    【解决方案2】:

    engine.io github 上的一个问题中有一个很棒的线程。帮助我更好地理解了粘滞会话、engine.io 和 heroku 的问题。

    【讨论】:

      【解决方案3】:

      Heroku 现在支持粘性会话 - 但前提是您加入了他们的开发(测试版)计划。

      根据我的经验,Heroku 在与 Socket.io_Redis 插件和启用设置结合使用时可以很好地与 socket.io 配合使用。

      【讨论】:

        猜你喜欢
        • 2013-01-23
        • 2016-07-08
        • 2012-06-15
        • 1970-01-01
        • 2014-02-23
        • 2013-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多