Utilizando websockets para “broadcasting” do servidor?

5

Eu quero tornar possível editar listas de tarefas compartilhadas em tempo real.

Já existe uma interface REST e é possível enviar atualizações para o servidor - adicionar itens, marcar itens como concluídos, etc.

Para o cliente obter essas atualizações imediatamente, eu fiz algumas pesquisas, e parece que a melhor abordagem seria websockets, pois elas são rápidas e confiáveis. As notificações push no outro lado podem levar "alguns segundos" e não são confiáveis. Acho que também vi algo sobre "transmissão via HTTP", que parecia mais adequado para vídeos e coisas do tipo. Não é possível encontrá-lo novamente.

Então eu estava pensando, primeiro, se websockets são realmente os melhores para isso, segundo, se é uma boa prática usar isso em combinação com REST - ou seja, eu faço o "push" do cliente A para o servidor usando uma chamada REST e, em seguida, faça o "push" do servidor para o cliente B usando um websocket. É claro que o cliente B também pode enviar atualizações para o servidor que precisam ser enviadas para A (e outros possíveis participantes). Então, talvez seja mais simples abrir conexões websocket para ambos e descartar o meu código REST. Por outro lado, uma lista também pode ter apenas 1 participante (o usuário atual), caso em que um websocket não é necessário, então talvez eu possa permitir que esses usuários usem REST e mudem para websockets apenas quando houver mais de 1 participantes? / p>

Uma combinação de sockets REST / web faz sentido para esta aplicação? Ou devo me ater a um ou outro?

    
por Ixxzz 20.11.2015 / 21:47
fonte

2 respostas

2

Você pode usar todos os 3. Usar a API REST para postar informações no servidor, websockets para atualizações imediatas e voltar a enviar notificações para o usuário final se o aplicativo não estiver em execução (e o usuário não tiver sido notificado através da conexão websocket).

Naturalmente, a API REST não é estritamente necessária, pois você pode executar as mesmas ações do lado do servidor usando websockets que você poderia com a API REST. Mas se isso faz sentido ou não depende realmente do seu servidor. Como você já tem a API REST, não há grande urgência em reescrevê-la para websockets. Mas certamente você pode começar a migrar a funcionalidade para usar websockets com o objetivo de eventualmente remover o uso da API REST.

    
por 20.11.2015 / 22:18
fonte
0

Se você quiser uma solução WebSocket completa (não há necessidade real de REST, a menos que você já tenha alguma estrutura REST no lado do servidor), há uma implementação do demo canônico todo compartilhado ToDoMVC por um dos engenheiros da Kaazing que usa pub / sub com WebSocket. É escrito em Angular e usa uma API de mensagens universal.

link

    
por 23.11.2015 / 15:55
fonte