web-dev-qa-db-fra.com

Nombre maximal de connexions Socket.IO simultanées

Cette question a été posée précédemment mais pas récemment et sans réponse claire.

Avec Socket.io, y a-t-il un nombre maximum de connexions simultanées qu’on peut maintenir avant de devoir ajouter un autre serveur?

Est-ce que quelqu'un connaît des environnements de production actifs qui utilisent des websockets (en particulier socket.io) à grande échelle? J'aimerais vraiment savoir quelle configuration est la meilleure pour un maximum de connexions?

Comme les Websockets sont construits sur TCP, ma compréhension est la suivante: à moins que les ports ne soient partagés entre des connexions, vous allez être lié par la limite de 64 Ko. Mais j'ai aussi vu des rapports de 512K connexions utilisant Gretty . Donc je ne sais pas.

100
Andrew

Cet article peut vous aider tout au long du chemin: http://drewww.github.io/socket.io-benchmarking/

Je me suis posé la même question, alors j'ai fini par écrire un petit test (en utilisant la scrutation XHR) pour voir quand les connexions commençaient à échouer (ou à prendre du retard). J'ai trouvé (dans mon cas) que les sockets ont commencé à agir vers 1400-1800 connexions simultanées.

Ceci est un bref résumé que j'ai fait, semblable au test que j'ai utilisé: https://Gist.github.com/jmyrland/5535279

63
JAM

Ce gars semble avoir réussi à avoir plus d'un million de connexions simultanées sur un seul serveur Node.js.

http://blog.caustik.com/2012/08/19/node-js-w1m-concurrent-connections/

Je ne sais pas exactement combien de ports il utilisait.

12
Daniel Nalbach

J'ai essayé d'utiliser socket.io sur AWS, je peux au mieux maintenir environ 600 connexions stables.

Et j’ai découvert que c’est parce que socket.io utilisait d’abord une longue interrogation, puis une mise à jour vers websocket.

après avoir configuré la configuration pour utiliser uniquement Websocket, je peux conserver environ 9 000 connexions.

Définissez cette configuration sur le côté client:

const socket = require('socket.io-client')
const conn = socket(Host, { upgrade: false, transports: ['websocket'] })
9
Salem Chen