我正在尝试扩展在restify上运行的socket.io.我能够将它设置为在一个nodejs实例上运行得很好.现在,当我将应用程序扩展到四个实例时,应用程序生态系统崩溃了(即,事件未在客户端之间正确同步).
我正在寻找有关如何使用restify设置粘性会话的示例.或者,现在如何完成?
粘性会话的更新是一年前:Socket 1.0 Update / Scalability.
我找到了这两个关于设置它的博客,但它们都使用了Express,并且也是在一年多前写的:
当我制作无头API时,我认为不应该使用Express.这是推荐的思维方式还是我应该使用Express?
的package.json:
"dependencies": {
"hiredis": "^0.4.1",
"pouchdb": "^4.0.3",
"pouchdb-upsert": "^1.1.3",
"redis": "^2.0.1",
"restify": "^4.0.0",
"socket.io": "^1.3.7"
}
任何帮助,将不胜感激!
最佳答案 Socket.io只会保留您的服务器< – >客户端数据在单个实例中同步,因为Node是单线程的,并且位于单个CPU核心上.要同步多个实例,您需要更高级别的消息管理方法. Socket.io推荐一个Redis实例.还有这个回购:
http://socketcluster.io为您处理相同的问题.