Connection State Recovery: Client->Server resync

Aberta
#5,363 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 2 dias

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
25/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
javascript, nodejs, typescript

Direção de pesquisa

A issue não menciona arquivos, testes nem pontos de entrada. Comece rastreando os fluxos existentes de recuperação do estado da conexão e de reconexão tanto no cliente quanto no servidor, depois inspecione o wire format; considera-se concluído quando os eventos ausentes do cliente para o servidor puderem ser tentados novamente após a reconexão e os offsets reconhecidos permitirem que o cliente descarte os eventos armazenados em buffer.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

enhancement

Is your feature request related to a problem? Please describe.
Connection state recovery only recovers packets that are buffered on the server. On reconnect, these are then sent to the client. But client->server packets are not handled this way.

Describe the solution you'd like
I'd like to have connection state recovery support packet retry from client to server as well. All client->server events would include an offset. On reconnect the server would send the latest client->server offset to the client and the client would repeat any missing events.

It would be nice to send the client->server offset back to the client periodically, or perhaps on every server->client event. This way the client could quickly purge events from its buffer.

This would probably involve a change to the wire format.

Describe alternatives you've considered
Practically, we end up writing a lot of extra handlers on reconnect to resync client state back to the server.

Linguagem predominante
TypeScript
Estrelas
63.2k
Forks
10.2k
Merge médio
6d 4h
PRs com merge (30d)
6

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de socketio/socket.io

Todas as issues de socketio/socket.io

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.