有没有人知道一个很好的解决方案来扩展node.js - 基于socket.io的应用程序在多个核心上?我目前正在测试socket.io文档中提供的解决方案,在多个节点上使用socket.io,但没有取得具体成功.
我在github上创建了一个游乐场:https://github.com/liviuignat/socket.io-clusters这是一个来自socket.io站点的聊天应用程序的位修改副本.它使用express,cluster,socket.io@1.1.0和socket.io-redis.
目前sticky-session在分支feature/sticky中使用的实现似乎也更好.
最后,应用程序需要发布到Heroku,扩展到多个dynos.
最初我尝试做这样的事情 - 只为群集节点启动服务器,但我总是收到错误:失败:连接在收到握手响应之前关闭
if (cluster.isMaster) {
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', function(worker, code, signal) {
console.log('worker ' + worker.process.pid + ' died');
});
} else {
var server = new Server({
dirName: __dirname,
enableSocket: true
})
.setupApp()
.setupRoutes()
.start();
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试为主节点启动服务器:
if (cluster.isMaster) {
var server = …Run Code Online (Sandbox Code Playgroud) 我正在通过一个项目使用material-ui,当尝试加载更大的联系人列表时,我遇到了自动完成组件的一些小问题,某些联系人可能具有相同的名称(由于测试数据),但有不同的ID。
{
contact,
key: index,
text: FullName,
value: <MenuItem key={index} primaryText={item} />
}
Run Code Online (Sandbox Code Playgroud)
谢谢,