Summary
- O rascunho de trabalho de Server-Sent Events publicado pelo W3C em 23 de abril de 2009 descreveu
EventSource, que recebe atualizações do servidor como eventos por uma conexão HTTP. - Um evento podia trazer
id. Após uma interrupção comum, o navegador levava o último ID emLast-Event-ID; um campoidvazio apagava o marcador.
O painel do pregão congela. Durante dois segundos, a hipótese de que todo mundo parou de negociar até parece simpática. Então chegam novos números e a brincadeira acaba: quantas cotações passaram enquanto a página estava muda? Uma sequência que retoma sem prestar contas pode parecer viva e ainda assim ter um buraco bem no meio.
O primeiro rascunho de Server-Sent Events, publicado pelo W3C em 23 de abril de 2009, apresentou EventSource. A página abria um endereço e se preparava para receber mensagens. O servidor mantinha uma resposta HTTP no formato text/event-stream; o navegador lia as linhas e entregava eventos completos ao código da página. Havia uma fita em movimento, mas também uma regra para saber onde terminava cada recado.
O exemplo de ações do documento cabia em três linhas de data: YHOO, +2, 10. Uma linha em branco encerrava o bloco. O navegador despachava um evento com os três valores, e a página os separava para atualizar o quadro. A linha em branco fazia o serviço humilde de um ponto final. Sem ela, o fluxo seria uma pilha de pedaços chegando sem cerimônia.
Outro exemplo trazia a peça mais interessante: data: first event junto de id: 1. O navegador guardava o número. Se a conexão caísse antes do recado seguinte, a nova requisição incluiria Last-Event-ID: 1. O rascunho de última chamada de dezembro de 2009 preservou esse mecanismo. Em vez de voltar ao balcão e pedir “o que aconteceu enquanto eu estava fora?”, o cliente podia entregar um marcador preciso.
Esse número era uma pista para o servidor, não um arquivo que brotava dentro do navegador. Se o serviço mantivesse os eventos anteriores, poderia escolher de onde retomar. Se apagasse o histórico ao fim do dia, teria de resolver a volta de outra maneira. O prazo de guarda, a troca de sessão e a resposta a uma posição antiga eram decisões de quem administrava a fita. O navegador conhecia sua última notícia; o servidor conhecia seu acervo. O protocolo fez os dois se falarem.
O próprio rascunho ensinava a jogar fora um marcador velho. Um evento posterior tinha o campo id sem valor. Isso limpava o ID lembrado; na próxima reconexão, Last-Event-ID ficaria de fora. Parece um detalhe de rodapé, até chegar o fechamento do pregão. O número da fita de ontem não precisa mandar na primeira notícia de hoje. O remetente ganhava uma forma de encerrar um capítulo sem pedir que o navegador guardasse a página para sempre.
Também se podia mandar uma linha começando por dois-pontos. Ela era comentário, não uma notícia a ser mostrada. A Recomendação de fevereiro de 2015 observou que comentários periódicos ajudavam em caminhos onde certos proxies antigos derrubavam conexões quietas. A especificação descreveu ainda retry para ajustar a espera entre tentativas e a resposta HTTP 204 No Content para mandar o navegador parar de reconectar. O operador do feed podia dar um sinal de vida ou fechar a porta ao fim da sessão.
O histórico de publicações do W3C registra o percurso dos rascunhos de 2009 até a Recomendação de 2015, passando por uma versão candidata em 2012. O desenho que atravessou esse caminho era econômico: linhas de texto para as notícias, um ID para a posição, uma nova requisição quando o fio quebrasse. Nenhuma das partes precisava fingir que a interrupção havia sido uma pausa elegante do mercado.
Web Workers, tema de outra reportagem desta série, resolveram uma dor diferente. O worker faz uma conta longa fora do espaço em que a página atende os cliques. EventSource recebe novidades de um servidor e leva uma posição de volta quando a conexão cai. Nos dois casos há mensagens. Aqui, a pergunta que importa é quem sabe qual foi o último recado visto e quem tem condições de entregar o próximo. O pregão pode ser barulhento; a resposta cabe num número.
Briefing para membros
Contexto aprofundado do perfil
Faça login com o nível de assinatura correto para desbloquear o briefing completo e as notas das fontes.
Apenas para Strategic Circle
Strategic Circle
Aberto a todos os leitores. Desbloqueie Briefings de perfil após se inscrever e fazer login.
Junte-se ao Strategic CircleSomente para Leadership Alliance
Leadership Alliance
Para proprietários e gestores qualificados de ativos de PI; faça login para desbloquear os briefings da Leadership Alliance.
Junte-se ao Leadership Alliance





