Jsdom: Implementações de WebSocket com suporte

Criado em 15 ago. 2015  ·  31Comentários  ·  Fonte: jsdom/jsdom

Há um código que queremos testar com JSDom que usa websockets. Existem muitas implementações diferentes . O que você sugere para uso em contextos do lado do servidor em JSDom + lado do cliente no navegador? Estou inclinado para ws .

Comentários muito úteis

Botões de votação? Estou procurando por isso, encontrei uma petição de mudança, mas parece que o github não implementou nenhum sistema de votação.

Todos 31 comentários

Bem, se você está se perguntando sobre a integração no jsdom, meu voto seria para um que:

  • está bem conservado
  • não tem dependências binárias
  • implementa a API por especificação

Em particular, ws definitivamente não implementa a API de especificação, por exemplo, usando on vez de addEventListener e assim por diante.

Não estou certo de qual é o propósito desta pergunta. Você está se preparando para criar um PR para adicionar suporte de soquete da web ao jsdom?

Eu criaria um PR para adicionar suporte a websocket se você quiser. Para o código que estou testando usando JSDom, também quero ser capaz de testar websockets (ao mesmo tempo que posso pesquisar o lote inteiro).

Isso seria adorável!

Seria apropriado usar ws sob o capô, mas fazer a API corresponder à especificação da API para websockets?

Com certeza.

Qual a finalidade do JSDom no século XI se ele não suporta WebSockets? ..
:-)
@rgbkrk +1
@domenic você integrou o PR?

@avesus Acontece que muitas pessoas encontraram um propósito nele até agora, apesar de não ser um navegador completo.

você integrou o PR?

Qual PR?

Nunca fiz RP, acabei me afastando um pouco do jsdom e também do projeto para o qual queria websockets. Volte a usá-lo novamente!

Por favor, use os botões de votação e não adicione comentários "eu também". Excluindo aquele que acabou de aparecer.

Botões de votação? Estou procurando por isso, encontrei uma petição de mudança, mas parece que o github não implementou nenhum sistema de votação.

@ davidworkman9
image

@inikulin obrigado. Eu não sabia que no github land essa reação.meaning == vote.meaning (ou que você poderia usar as reações como um mecanismo de votação). Desculpe pela minha falta de habilidades sociais adequadas no github.

Ei, tudo bem, o recurso existe há apenas algumas semanas IIRC.

qual é o estado atual do websocket em jsdom?

Não foi implementado.

@Sebmaster
É muito difícil separar o código dos websockets. Gostaríamos de testar as visualizações, mas as visualizações requerem modelos, os modelos requerem websockets. Modelos Moking são possíveis, mas com uma faixa de teste muito próxima.

Você planeja implementar websokets em um futuro próximo?

Não creio que nenhum de nós esteja implementando ou priorizando isso em um futuro próximo. Portanto, a menos que haja um PR ou uma mudança de prioridades, provavelmente não.

Alguém está interessado em colaborar nisso?

Estou disposto a fazer o trabalho, mas seria ótimo ter outras pessoas participando pelo menos nas revisões.

@ palmerj3 Eu estaria interessado, mas tenho certeza que o resto de @jsdom também estaria. Apenas certifique-se de olhar os requisitos @ Joris-van-der-Wel listados ao escolher uma biblioteca WS: https://github.com/tmpvar/jsdom/issues/1195#issuecomment-131390814. Se você tiver algum problema, estaremos em #jsdom no Freenode para ajudar :)

Alguém está trabalhando nisso? Vou tentar de outra forma

Ninguém está trabalhando nisso. ws suporta addEventListener agora, então você deve ser capaz de usar esse módulo diretamente.

Em geral, não podemos usar nenhum módulo diretamente, pois eles não suportam a semântica Web IDL completa; ainda será necessário embrulhar. Consulte https://github.com/tmpvar/jsdom/blob/master/Contributing.md#architecture para obter mais informações.

Usar isso não funcionaria? https://www.npmjs.com/package/universal-websocket-client

Isso é realmente o que estou usando no meu aplicativo que jsdom está tendo problemas com

Isso definitivamente não seria uma boa ideia; é apenas um invólucro em torno de ws , então precisaríamos de um invólucro em torno de um ws. Vamos fazer apenas uma camada de embrulho, por favor.

AFAIK este wrapper implementa esta especificação API

Sim, mas como tentei explicar (e Contributing.md entra em mais detalhes), ele não o implementa de uma forma compatível com os sistemas jsdom. Por exemplo, jsdom já contém um EventTarget, então não podemos usar aquele que vem com ws (ou universal-websocket-client); então teríamos duplicatas.

Ah, isso faz sentido. Analisará os documentos de contribuição. Obrigado

Obrigado @domenic e @thdxr.

Para sua informação, agora há um PR ativo implementando a totalidade das APIs WebSocket, em https://github.com/tmpvar/jsdom/pull/2088. Por favor, confira!

O WebSocket API PR acaba de ser mesclado! O suporte estará disponível na próxima versão do jsdom.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

lehni picture lehni  ·  4Comentários

mitar picture mitar  ·  4Comentários

kentmw picture kentmw  ·  3Comentários

domenic picture domenic  ·  3Comentários

philipwalton picture philipwalton  ·  4Comentários