it-swarm.com.de

Maximale Anzahl gleichzeitiger Socket.IO-Verbindungen

Diese Frage wurde zuvor gestellt, aber nicht in letzter Zeit und ohne klare Antwort.

Gibt es bei Socket.io eine maximale Anzahl gleichzeitiger Verbindungen, die Sie aufrechterhalten können, bevor Sie einen weiteren Server hinzufügen müssen?

Kennt jemand eine aktive Produktionsumgebung, in der Websockets (insbesondere socket.io) in großem Umfang verwendet werden? Ich möchte wirklich wissen, welche Art von Setup für maximale Verbindungen am besten ist.

Da Websockets auf TCP aufbauen, gilt nach meinem Verständnis, dass Sie an das 64-KB-Port-Limit gebunden sind, sofern die Ports nicht von den Verbindungen gemeinsam genutzt werden. Aber ich habe auch Berichte von 512K-Verbindungen mit Gretty gesehen. Ich weiß es nicht.

100
Andrew

Dieser Artikel kann Ihnen dabei helfen: http://drewww.github.io/socket.io-benchmarking/

Dieselbe Frage stellte sich mir, und so schrieb ich einen kleinen Test (mithilfe von XHR-Polling), um festzustellen, wann die Verbindungen fehlschlugen (oder ins Hintertreffen gerieten). Ich fand (in meinem Fall), dass die Sockets bei ungefähr 1400-1800 gleichzeitigen Verbindungen zu funktionieren begannen.

Dies ist eine kurze Zusammenfassung, die ich gemacht habe, ähnlich dem Test, den ich verwendet habe: https://Gist.github.com/jmyrland/5535279

63
JAM

Diesem Kerl scheint es gelungen zu sein, über 1 Million gleichzeitige Verbindungen auf einem einzelnen Node.js-Server herzustellen.

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

Mir ist jedoch nicht klar, wie viele Ports er verwendet hat.

12
Daniel Nalbach

Ich habe versucht, socket.io unter AWS zu verwenden. Ich kann höchstens 600 Verbindungen stabil halten.

Und ich habe herausgefunden, dass socket.io zuerst langes Polling verwendet und später auf websocket aktualisiert hat.

nachdem ich die Konfiguration so eingestellt habe, dass nur Websocket verwendet wird, kann ich ungefähr 9000 Verbindungen aufrechterhalten.

Stellen Sie diese Konfiguration auf der Clientseite ein:

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