Socket.io + node.js + IIS 挂起/冻结问题

Socket.io + node.js + IIS hangs/ Freeze issue

我已经在我的应用程序中实现了 socket.io。我会先解释我的申请,然后再解释我的问题。

我的应用程序是基于节点的应用程序,它通过具有反向代理机制的 IIS 托管。 我在我的应用程序中实现了 Socket.io,其中 socket.io 客户端使用以下代码连接到服务器。

客户代码:

    try {
let path = window.location.pathname;
path = path.substring( 0, path.lastIndexOf( "/" ) );
window.SocketConnection = io && io.connect( "/", { path: path + "/socket.io" } );
} catch( exception ) {
console.error( exception );
}

以上代码将执行一次,我的应用程序加载。

服务器代码:

    // Socket connection options.
const SocketOptions = {
pingTimeout: 60000,
maxHttpBufferSize: 1024 * 1024 * 48,
transports: [ "polling", "websocket" ]
};

// Initialize the Socket connection with required parameters.
io = socketIO( server, SocketOptions );

问题: 现在的问题是,如果有更多客户端(大约 3K 个连接)连接到服务器,IIS 会挂起并冻结。

我的问题: 提供的信息可能不足以回答我的问题,但如果您回答我的以下问题,将会有所帮助。

  1. 处​​理这种 IIS 挂起/冻结的最佳方法是什么 负载?
  2. 我需要使用任何特殊的 Socke.io client/server 选项来 减少这种负载问题?

通过, 萨拉斯·库马尔。

  1. What is the best way to handle this kind of IIS hang/ freeze on high load?

=> 首先检查系统内存到缓存内存是否变得太高。

=> 尝试优化您的代码以提高性能。

=> 由于服务器无法处理大量请求,需要一段时间。 => 尝试使用多个服务器来分配您的服务器请求负载。

  1. Do I need to use any special Socke.io client/server option to reduce this kind of load issue?

=> 是的,你可以做到。像在 time.you 上减少重负载的多个 Socket 服务器可以使用 Loadbalancer。