wasm: Close with codes other than 1000 throws, so CloseNow never closes
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 20/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Estagnada
- Stack de tecnologia
- go
- Domínio
- networking
Direção de pesquisa
The issue describes the failure in the js/wasm build when Conn.Close passes unsupported codes to the browser's WebSocket.close, and links PR #576, which is already open. Read that pull request and the Close/CloseNow path it changes; the issue's expected behavior is that rejected codes are sent as 1000 so the browser closes the socket without an error or panic.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
In the js/wasm build, Conn.Close passes the code straight to the browser's WebSocket.close, which only accepts 1000 and 3000-4999 and throws InvalidAccessError for anything else. This package closes with 1001 (CloseNow), 1008 (read or dial context done), 1009 (read limit) and 1011 (write error), so all of those return an error and leave the socket open. Under TinyGo the throw is not recovered, so the program panics.
To reproduce, dial any server and call c.CloseNow(). In Chromium it returns:
failed to close WebSocket: JavaScript error: Failed to execute 'close' on 'WebSocket': The close code must be either 1000, or between 3000 and 4999. 1001 is neither.
A fix is to send 1000 to the browser for the codes it rejects. I have a PR for it.
- Linguagem predominante
- Go
- Estrelas
- 5.5k
- Forks
- 379
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de coder/websocket
-
Must not wrap io.EOFTalvez já em andamento @Yanhu007 assumiu há 178 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
-
export wstestAbertaenhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 42/100
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 45/100
Todas as issues de coder/websocket
Issues semelhantes
-
agent-research agent-review-finding chore
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
jordansmall/spindrift#4922 ·
Mantenedores costumam responder em até 1 dia
-
gcsartifact: deleting a missing version returns an errorTalvez já em andamento @ktsoator assumiu hoje. Abertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 2 dias
-
govulncheck
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
Mantenedores costumam responder em até 1 dia
-
Change wording for init command success messageTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 1 dia
-
enhancement pkg:sdk
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 80/100
aws/aws-durable-execution-sdk-go#144 ·
Mantenedores costumam responder em até 1 dia