node.js - 如何通过 Socket.io 和 Express 使用集群

标签 node.js session express socket.io

我将express与socket.io一起使用,并将express-session与express-socket.io-session一起使用,这可以帮助我将 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)
}

部署功能运行 session 、路由等内容。

发布http://localhost:8080/socket.io/?EIO=3&transport=polling&t=Lz9Ey8p 404(未找到)

最佳答案

我找到了答案,但我会将其公开,以便将来如果有人遇到此问题,他们可以立即快速设置。

您需要使用粘性集群,引用this config for Express .

关于node.js - 如何通过 Socket.io 和 Express 使用集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46889514/

相关文章:

android - 当我尝试上传新的时,我的 firebase 功能被删除了

javascript - THREE.OBJLoader 不工作(TypeError)

ASP.NET 应用程序从 Session.Remove 实现中引发 System.NullReferenceException

c# - NHibernate 没有 session 或 session 已关闭

node.js - 构建 React 项目时出现错误 : node_modules\react-native-fs\FS. common.js : Unexpected token, 预期 ","(30:29)

java - 字符串无法转换为整数 session 属性

node.js - 在 Node.js/Waterline 中指定返回字段?

node.js - passport.js passport.initialize() 中间件未使用

ember.js - 如何为 Ember.js + Express 设置开发环境

javascript - Node.js中通过dns txt记录验证站点