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 .
Bem, se você está se perguntando sobre a integração no jsdom, meu voto seria para um que:
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
@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.
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.