【发布时间】:2022-02-02 17:42:14
【问题描述】:
我运行一个在 NodeJS 和 React 中构建的聊天门户,该门户托管在 Azure 应用服务上。最近,随着越来越多的人使用它,Microsoft 指示我们扩展应用程序,本质上是为其提供更多实例。
虽然这确实解决了性能问题,但门户的 Socket.IO 组件随后会按预期停止工作。它似乎只偶尔从 Socket.IO 接收 ping,这导致数据在需要时不刷新。我在应用服务上启用了 Websockets 和 ARR Affinity,禁用 ARR Affinity 完全破坏了 Socket.io 功能。我是使用 Socket.IO 在多个实例上运行 NodeJS 的新手,因此我希望社区提供有关如何解决此问题的任何反馈。
Socket.IO配置如下:
服务器索引.js
const server = require('http').createServer(app);
const io = require('socket.io')(server);
app.io = io;
客户端
import { io } from "socket.io-client";
const socket = io(null, {
reconnectionDelayMax: 3000,
reconnection: true,
reconnectionAttempts: Number.MAX_VALUE,
timeout: 7000
});
export default socket;
【问题讨论】:
标签: node.js azure websocket socket.io azure-web-app-service