how does strongloop supervisor handle websocket connections?

ε祈祈猫儿з 提交于 2019-12-08 04:37:44

问题


I have a node app that I connect to from a browser using WebSockets.

If I run this app under a supervisor (slc run --cluster cpu myapp.js), will a websocket connection be always forwarded to the same worker once established? Or will the supervisor do some sort of load balancing when forwarding messages send to this connection?


回答1:


strong-supervisor does absolutely no load balancing or clustering on its own: it auto-starts and configures node cluster (http://nodejs.org/api/cluster.html)

Node cluster distributes connections at the TCP level, it knows nothing about the protocols running over them.

When using websockets, you have two choices, use nginx or another load balancer that is websocket aware, or don't assume websocket and http connections have process affinity, and keep shared state out of process, probably a database.

If using socket.io, look at https://github.com/automattic/socket.io-redis and https://github.com/strongloop/strong-cluster-socket.io-store



来源:https://stackoverflow.com/questions/28071314/how-does-strongloop-supervisor-handle-websocket-connections

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!