Estou escrevendo um servidor para um jogo iOS. O jogo é baseado em turnos e a única vez que o servidor precisa enviar informações para o cliente é para notificar o movimento do oponente.
Estou curioso para saber se alguém poderia comentar sobre as diferenças de desempenho e facilidade de implementação entre o uso de websockets e pesquisas longas. Além disso, se eu usar websockets, devo usá-lo apenas para receber informações e enviar solicitações POST para todo o resto ou toda a comunicação deve ser feita por meio do websocket?
Além disso, há algo a mais a se considerar entre websockets e long polling se eu estiver interessado em também fazer um cliente web?
Respostas:
Uma variação da técnica tradicional de pesquisa e permite a emulação de um envio de informações de um servidor para um cliente. Com a pesquisa longa, o cliente solicita informações do servidor de maneira semelhante a uma pesquisa normal.
Assim que as informações estiverem disponíveis (ou após um tempo limite adequado), uma resposta completa é enviada ao cliente. O cliente normalmente solicitará imediatamente novamente as informações do servidor, de modo que o servidor quase sempre terá uma solicitação em espera disponível que pode ser usada para entregar dados em resposta a um evento.
Em um contexto web / AJAX, long polling também é conhecido como programação Comet.
Os WebSockets fornecem uma conexão persistente entre um cliente e um servidor que ambas as partes podem usar para começar a enviar dados a qualquer momento.
Conclusão :
Se houver necessidade de comunicação em tempo real pode muito bem optar por websockets.
Mas em Long Polling:
Uma conexão é mantida aberta entre o cliente da web e o servidor da web para que, quando o servidor tiver novas informações, ele possa enviá-las ao cliente. Esse pedido é então concluído. Uma nova solicitação é feita entre o cliente e o servidor e, em seguida, aguarda outra atualização do servidor. A mesma conexão TCP é geralmente aberta persistentemente em várias solicitações devido a keep-alives HTTP / 1.1.
Referências e outras considerações:
PubNub long polling vs sockets - duração da bateria móvel
O que são Long-Polling, Websockets, Server-Sent Events (SSE) e Comet?
longa sondagem no objetivo-C
Introdução ao Websocket
Websocket Vs Long Polling
Usando Websockets em aplicativos
Aplicativo Websocket
PushTechnology-Long Polling
fonte