Esta pergunta foi feita anteriormente, mas não recentemente e não com uma resposta clara.
Usando Socket.io, há um número máximo de conexões simultâneas que alguém pode manter antes de precisar adicionar outro servidor?
Alguém sabe de algum ambiente de produção ativo que está usando websockets (particularmente socket.io) em grande escala? Eu realmente gostaria de saber que tipo de configuração é melhor para conexões máximas.
Como os Websockets são construídos sobre TCP, meu entendimento é que, a menos que as portas sejam compartilhadas entre as conexões, você estará limitado pelo limite de portas de 64K. Mas também vi relatórios de conexões de 512K usando Gretty . Então eu não sei.
Respostas:
Este artigo pode ajudá-lo no processo: http://drewww.github.io/socket.io-benchmarking/
Eu me perguntei a mesma questão, então acabei escrevendo um pequeno teste (usando XHR-polling) para ver quando as conexões começaram a falhar (ou ficar para trás). Eu descobri (no meu caso) que os sockets começaram a funcionar por volta de 1400-1800 conexões simultâneas.
Este é um resumo que fiz, semelhante ao teste que usei: https://gist.github.com/jmyrland/5535279
fonte
Tentei usar o socket.io no AWS, posso no máximo manter cerca de 600 conexões estáveis.
E descobri que é porque socket.io usou long polling primeiro e atualizou para websocket depois.
depois de definir a configuração para usar apenas websocket, posso manter cerca de 9.000 conexões.
Defina esta configuração no lado do cliente:
fonte
Esse cara parece ter conseguido ter mais de 1 milhão de conexões simultâneas em um único servidor Node.js.
http://blog.caustik.com/2012/08/19/node-js-w1m-concurrent-connections/
Não está claro para mim exatamente quantas portas ele estava usando.
fonte
Para + 300k conexão simultânea:
Defina essas variáveis em
/etc/sysctl.conf
:Além disso, altere essas variáveis em
/etc/security/limits.conf
:E, finalmente, aumente os buffers de TCP
/etc/sysctl.conf
também:para obter mais informações, consulte https://www.linangran.com/?p=547
fonte