it-swarm-pt.tech

Qual é a diferença entre engine.io e socket.io?

Corrija-me se esta pergunta for uma duplicata. Em relação ao node.js, estou usando o socket.io para conexão em soquete em tempo real do aplicativo cliente para o servidor. Acabei de ouvir sobre o engine.io, o engine.io é um substituto para o socket.io? Não encontrei nenhuma informação útil no site engine.io

Desde já, obrigado

46
L N

engine.io é uma biblioteca de nível inferior ao socket.io.

O mecanismo é o Socket.IO, o que o Connect é o Express.

Se você deseja a abstração de nível inferior, use engine.io. Se você deseja uma abstração do websocket, continue usando o socket.io.

o engine.io é de seu interesse se você estiver criando uma biblioteca/estrutura sobre o socket.io.

o socket.io é de seu interesse se você estiver criando um aplicativo sobre o socket.io.

91
Raynos

socket.io é construído sobre o engine.io.

socket.io é engine.io com sinos e assobios.

se você não precisa de tudo o socket.io (redis store, grupos, etc.) basta usar o engine.

20
kidcapital

Um pouco tarde para o jogo :-), mas vou mencioná-lo aqui para a posteridade.

Além de ser de "nível inferior", uma das diferenças mais importantes é o socket.io começará com os websockets primeiro e será degradado até encontrar um transporte que possa funcionar. Por outro lado, o engine.io começará com uma pesquisa curta (e atualizará do lado até atingir uma parede).

Por quê?

Da perspectiva do usuário, uma conexão WebSocket malsucedida pode ser traduzida em até pelo menos 10 segundos de espera pelo aplicativo em tempo real começar a trocar dados. Isso prejudica a experiência do usuário.

No momento (2013), os websockets ainda não são difundidos (por exemplo, navegadores mais antigos, redes de celular etc.), por isso é inteligente começar com o XHR 1st.

Consulte https://github.com/LearnBoost/engine.io (seção Metas) para obter mais informações.

18
khoomeister

O Socket.IO v0.9 está desatualizado e um pouco complicado, e o Engine.IO é o sucessor intermediário. O Socket.IO v1.0 (que será lançado em breve) usará o Engine.IO e será muito melhor que o v0.9.

Nos meus testes, o Engine.IO pareceu ter um desempenho melhor que o Socket.IO v0.9, veja a comparação: https://medium.com/node-js-javascript/b63bfca0539

O Socket.IO tenta se reconectar por algum tempo após a conexão ser perdida, enquanto o Engine.IO não.

O Socket.IO suporta salas, enquanto o Engine.IO não. Você precisaria de salas (através desses módulos ou de sua própria implementação) se tiver conexões ouvindo dados/canais diferentes.

8
Deniz Ozger