Conexão WebSocket vs. GETs repetidos

2

Eu estou criando um protótipo de um aplicativo usando o nodejs. Mas esta questão refere-se ao lançamento em grande escala hipotético. O que é mais exigente em um servidor e / ou largura de banda: conexões do WebSocket permanecem ativas ou repetidas solicitações de HTTP GET do cliente?

Por exemplo (talvez um exemplo extremo), é mais eficiente para o Twitter permitir que seus clientes enviem solicitações GET para sua API a cada 20 segundos ou que cada cliente esteja conectado em um websocket HTTP1.1? E a cada 1 minuto ou mais ou menos?

BTW, talvez isso não importe, mas supondo que as solicitações GET serão tratadas pelo nginx como se fosse um nó, isso faria diferença?

    
por Ross 29.11.2010 / 23:42

2 respostas

1

WebSockets são melhores porque você mantém a conexão aberta e não envia cabeçalhos extra de protocolo e outras coisas após cada solicitação e resposta. Veja este artigo :

During making connection with WebSocket, client and server exchange data per frame which is 2 bytes each, compared to 8 kilo bytes of http header when you do continuous polling.

    
por 02.12.2010 / 15:46
2

websockets é uma opção melhor, mas ainda não está em todos os navegadores. Se você seguir esse caminho, você vai querer usar o SocketIO no lado do cliente e do node.js. Isso fornecerá um failover para flash sockets se o navegador não suportar websockets ainda.

Você ganha em websockets, pois os dados enviados de volta ao servidor não são tão grandes quanto uma solicitação get.

    
por 30.11.2010 / 03:04