有没有办法在集群模块中维护与套接字服务器的粘性会话?我还没有看到任何这样的例子。我在我的客户端上得到{"code":1,"message":"Session ID unknown"}
错误,因为没有粘性会话。我尝试强制webSockets而不是首先轮询,但这使连接对我来说不可靠,所以这不是一个选项。
代码:
const cluster = require("cluster");
const numCPUs = require("os").cpus().length;
if (cluster.isMaster) {
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
};
cluster.on("exit", function () {
cluster.fork();
});
} else {
const origin = "http://localhost:3000";
const io = require("socket.io")(3001, {
cors: {origin}
});
const {createClient} = require("redis");
const redisAdapter = require("@socket.io/redis-adapter");
const pubClient = createClient({ host: "localhost", port: 6379 });
const subClient = pubClient.duplicate();
io.adapter(redisAdapter(pubClient, subClient));
io.on("connection", function (socket) {
//...
});
};
字符串
1条答案
按热度按时间6za6bjd01#
字符串