我需要有人解释如何让 socketIO 客户端与部署到 Google Cloud App Engine 的 nodeJs 应用程序成功连接。
我设置了 nodejs 集群,因此不得不使用 socketIO 的 redis 适配器来管理会话亲和性。
在我部署到 Gcloud App Engine 之前,这一直运行良好。
这是我当前在服务器端的 socketIO 实现:
const { Server } = require("socket.io");
const redisAdapter = require("socket.io-redis");
const { setupMaster, setupWorker } = require("@socket.io/sticky");
const io = new Server(server, {
pingTimeout: 60000,
transports: ["websocket"],
cors: {
origin: "*",
methods: ["GET", "POST", "DELETE", "PATCH"],
allowedHeaders: ["Access-Control-Allow-Origin"],
credentials: true,
},
});
io.adapter(
redisAdapter({
host: process.env.REDISTOGO_URL,
port: 15156,
password: process.env.REDIS_PASSWORD,
})
);
setupWorker(io);
console.log("Redis socket Connected");
我对 gcloud 很陌生,所以我将非常感谢我能得到的任何帮助。我已尝试撤消 nodejs 集群,但仍然无法正常工作。