HTML5 WebSocket
-
Permitir que o servidor envie dados ativamente para o cliente
-
O navegador e o servidor precisam apenas concluir um handshake, e os dois podem criar diretamente uma conexão persistente e realizar a transmissão de dados bidirecional.
-
Economize recursos e largura de banda do servidor, realize mais comunicação em tempo real
Criarwebsocket
-
O primeiro parâmetro é o caminho de destino
-
O segundo parâmetro é opcional, que pode ser uma cadeia ou uma matriz, para representar sub-protocolo, o que iria permitir que um servidor para conseguir mais
websocket
sub-protocolo
var ws = novo WebSocket ([ url], [ opção])
Método de instância
-
send()
: Receba umString|ArrayBuffer|Blob
dado e envie-o ao cliente -
close()
: O cliente desconecta ativamente-
O primeiro parâmetro é opcional, é o número do status fechado, o padrão é 1000
-
O segundo parâmetro é opcional, tipo de sequência, indicando o motivo da desconexão
-
Constante representando o status da conexão
-
WebSocket.CONNECTING
0 A conexão não foi aberta -
WebSocket.OPEN
1 A conexão está aberta e pronta para se comunicar -
WebSocket.CLOSING
2 A conexão está fechando -
WebSocket.CLOSED
3 A conexão está fechada ou a conexão não pode ser estabelecida -
Determinar o estado atual por
readyState
atributos
Monitoramento de eventos
-
open
: Conexão estabelecida ----- OPEN -
message
: Mensagem recebida, dados recebidos na função de retorno de chamadamessageEvent
, quemessageEvent.data
são informações da mensagem -
closed
: Conexão fechada-FECHADO -
error
: Ocorreu um erro durante o estabelecimento e a conexão
Método de monitoramento de eventos e análise de dados
-
Pode
on[事件]
ser atribuído diretamente-
ws. onopen = function () { alert ( 'Conecte-se com sucesso')}
-
-
Você também pode usar
addEventListener
eventos de escuta-
ws. addEventListener ( 'open', funtion () {})
-
-
Seja um servidor ou um cliente, ele recebe uma seqüência de caracteres serializada, que geralmente precisa ser
JSON.parse(e.data)
analisada
Estabilidade de conexão
-
Em alguns casos, quando há um erro de desconexão ou conexão, você precisa monitorar
error
ouopen
desconectar anormalmente e reconectar -
Na
open
tarefa um aberto após o momento para determinar a correntereadyState
nas circunstâncias incomuns tentativa de reconexão
Batimento cardíaco
-
WebSocket
O mecanismo de pulsação é especificado em 1. Uma parte envia umaping(opcode 0x9)
mensagem para a outra parte e a outra parte deve retornar o mais rápido possível após recebê-ping
la.pong(0xA)
-
Usado para verificar o status online do parceiro conectado. Portanto, se não houver pulsação, não há como julgar o status da conexão da outra parte e a conexão será desconectada.
Fase de construção
-
Por meio de
HTTP
-
Significado do cabeçalho da solicitação parcial
-
Connection:Upgrade
: Indica que você deseja atualizar o contrato -
Upgrade:websocket
: Indica que você deseja atualizar para owebsocket
contrato -
Sec-WebSocket-Version
:websocket
Versão -
Sec-WebSocket-Key
: É umBase64 encode
valor gerado aleatoriamente pelo navegador, e a cabeceira da resposta do serviçoSec-WebSocket-Accept
pacote
-
-
Significado de cabeçalho de resposta parcial
-
Código de status 101: indica protocolo de comutação
-
Upgrade
EConnection
-