0

我需要有人解释如何让 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 集群,但仍然无法正常工作。

4

0 回答 0