如何使用 Socket.io 和 Express 进行集群
Posted
技术标签:
【中文标题】如何使用 Socket.io 和 Express 进行集群【英文标题】:How to use Clustering with Socket.io and Express 【发布时间】:2018-04-04 00:15:29 【问题描述】:我将 express 与 socket.io 一起使用,并将 express-session 与 express-socket.io-session 一起使用,这有助于我将会话连接到我的套接字实例。
这是我用于聚类的代码
var cluster = require('cluster')
if(cluster.isMaster)
// imports
const http = require('http'),
socketIO = require('socket.io')
var server = http.createServer(),
io = socketIO(server)
for (var i = 0; i < 3; i++)
cluster.fork()
cluster.on('exit', function(worker, code, signal)
console.log('worker ' + worker.process.pid + ' died code: ' + code + 'signal: '+ signal)
)
if(cluster.isWorker)
var express = require('express'),
app = express(),
deploy = require('./main.js'),
server = require('http').createServer(app),
io = require('socket.io').listen(server)
// add store here.
// deploy and listen
deploy(app, io)
console.log(cluster.worker.id)
app.listen(8080)
部署函数运行会话、路由等内容。
POST http://localhost:8080/socket.io/?EIO=3&transport=polling&t=Lz9Ey8p 404(未找到)
【问题讨论】:
【参考方案1】:我找到了答案,但我会将其公开,以便将来如果有人遇到此问题,他们可以立即快速设置。
需要使用sticky cluster,参考this config for Express。
【讨论】:
以上是关于如何使用 Socket.io 和 Express 进行集群的主要内容,如果未能解决你的问题,请参考以下文章
如何在 express 和 socket.io 中使用护照?
如何在同一个端口上运行 express 和 socket.io
如何使用 socket io 和 node express 发送个人消息
如何结合 Express.JS 使用 Socket.io(使用 Express 应用程序生成器)
如何使用socket.io mysql nodejs express删除帖子
在 node.js 中,如何使用 socket.io 和 express 设置 redis?具体使用 RedisStore()