ObjectWebSocket
WebSocket é un protocolo de comunicación full-duplex baseado no protocolo TCP. Establece unha conexión ininterrompida entre o navegador e o servidor, pode realizar a transmisión de datos bidireccional en tempo real e admite a transmisión de datos en calquera formato. En fibjs, o módulo de soporte de WebSocket proporciona a interface API correspondente, que pode realizar o desenvolvemento do servidor e cliente WebSocket.
O módulo de soporte de WebSocket é só unha implementación do protocolo WebSocket e debe funcionar enriba do protocolo HTTP. No lado do servidor, a solicitude HTTP pódese converter nunha conexión WebSocket mediante a función de actualización, mentres que no lado do cliente, o enderezo do servidor que se vai conectar debe especificarse a través do URL do protocolo WebSocket.
Exemplo de inicio dun servidor WebSocket:
1
2
3
4
5
6
7
8
9
10
11var ws = require('ws');
var http = require('http');
var svr = new http.Server(80, {
'/ws': ws.upgrade(conn => {
conn.onmessage = e => {
conn.send('fibjs:' + e.data);
};
})
});
svr.start();
Exemplo de establecer unha conexión co servidor anterior no cliente:
1
2
3
4
5
6
7
8
9
10
11
12var ws = require("ws");
var conn = new ws.Socket("ws://127.0.0.1/ws");
// emit open event
conn.onopen = () => {
console.log("websocket connected");
conn.send("hi");
};
// emit close event
conn.onmessage = evt => {
console.log("websocket receive: " + evt.data);
};
relación de herdanza
Construtor
WebSocket
Construtor WebSocket
1
2
3new WebSocket(String url,
String protocol = "",
String origin = "");
Parámetros de chamada:
- url: Cadea, especifica o servidor conectado
- protocol: Cadea, especifica o protocolo de apretón de mans, o valor predeterminado é ""
- origin: Cadea, especifica a fonte da simulación durante o apretón de mans, o valor predeterminado é ""
Construtor WebSocket
1
2new WebSocket(String url,
Object opts);
Parámetros de chamada:
- url: Cadea, especifica o servidor conectado
- opts: Obxecto, opción de conexión, o valor predeterminado é {}
opts contén opcións adicionais para a solicitude, admitidas como segue:
1
2
3
4
5
6
7
8{
"protocol": "", // specify the sub-protocol, default is ""
"origin": "", // specify the origin, default is ""
"perMessageDeflate": false, // specify whether to enable permessage-deflate, default is false
"maxPayload": 67108864, // specify the max payload size, default is 64MB
"httpClient": hc, // specify the http client, default is null, use the global http client
"headers": // specify the http headers, default is {}
}
propiedades estáticas
defaultMaxListeners
Enteiro, o número máximo global predeterminado de oíntes
1static Integer WebSocket.defaultMaxListeners;
propiedades dos membros
url
String, consulta o servidor ao que está conectado o obxecto actual
1readonly String WebSocket.url;
protocol
String, consulta o protocolo da conexión do obxecto actual
1readonly String WebSocket.protocol;
origin
Cadea, consulta a fonte da conexión do obxecto actual
1readonly String WebSocket.origin;
readyState
Enteiro, consulte o estado de conexión do obxecto actual, consultews
1readonly Integer WebSocket.readyState;
onopen
Eventos de éxito de conexión de función, consulta e vinculación, equivalente a on("abrir", func);
1Function WebSocket.onopen;
onmessage
Función, consulta e vinculación de eventos que reciben mensaxes da outra parte, equivalente a on("mensaxe", func);
1Function WebSocket.onmessage;
onclose
Función, consulta e vincula eventos de peche de conexión, equivalente a on("close", func);
1Function WebSocket.onclose;
onerror
Función, consulta e vinculación de eventos cando se producen erros, equivalente a on("erro", func);
1Function WebSocket.onerror;
función de membro
close
Pecha a conexión actual. Esta operación enviará un paquete CLOSE á outra parte e agardará a que a outra parte responda.
1
2WebSocket.close(Integer code = 1000,
String reason = "");
Parámetros de chamada:
- code: Número enteiro, especifica o código de apagado, o valor permitido é 3000-4999 ou 1000, o valor predeterminado é 1000
- reason: Cadea, especifica o motivo do apagado, o valor predeterminado é ""
send
Envía un texto á outra parte
1WebSocket.send(String data);
Parámetros de chamada:
- data: Cadea, especifica o texto que se vai enviar
Envía un anaco de datos binarios á outra parte
1WebSocket.send(Buffer data);
Parámetros de chamada:
- data:Buffer, especifique os datos binarios enviados
ref
Evita que o proceso fibjs saia e evite que o proceso fibjs saia durante a vinculación de obxectos
1WebSocket WebSocket.ref();
Resultados de devolución:
- WebSocket, devolve o obxecto actual
unref
Permite que o proceso fibjs saia. Permite que o proceso fibjs saia durante a vinculación de obxectos.
1WebSocket WebSocket.unref();
Resultados de devolución:
- WebSocket, devolve o obxecto actual
on
Vincular un controlador de eventos ao obxecto
1
2Object WebSocket.on(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Vincular un controlador de eventos ao obxecto
1Object WebSocket.on(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto empregarase como nome do evento e o valor do atributo como función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
addListener
Vincular un controlador de eventos ao obxecto
1
2Object WebSocket.addListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Vincular un controlador de eventos ao obxecto
1Object WebSocket.addListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto empregarase como nome do evento e o valor do atributo como función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
prependListener
Vincular un controlador de eventos á orixe do obxecto
1
2Object WebSocket.prependListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Vincular un controlador de eventos á orixe do obxecto
1Object WebSocket.prependListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto empregarase como nome do evento e o valor do atributo como función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
once
Vincula un controlador de eventos único ao obxecto. O manejador único só se activará unha vez.
1
2Object WebSocket.once(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Vincula un controlador de eventos único ao obxecto. O manejador único só se activará unha vez.
1Object WebSocket.once(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto empregarase como nome do evento e o valor do atributo como función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
prependOnceListener
Vincular un controlador de eventos á orixe do obxecto
1
2Object WebSocket.prependOnceListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Vincular un controlador de eventos á orixe do obxecto
1Object WebSocket.prependOnceListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto empregarase como nome do evento e o valor do atributo como función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
off
Desasignar unha función da cola de procesamento de obxectos
1
2Object WebSocket.off(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Cancela todas as funcións da cola de procesamento de obxectos
1Object WebSocket.off(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Desasignar unha función da cola de procesamento de obxectos
1Object WebSocket.off(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto úsase como nome do evento e o valor do atributo úsase como función de procesamento de eventos.
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
removeListener
Desasignar unha función da cola de procesamento de obxectos
1
2Object WebSocket.removeListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Cancela todas as funcións da cola de procesamento de obxectos
1Object WebSocket.removeListener(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Desasignar unha función da cola de procesamento de obxectos
1Object WebSocket.removeListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto úsase como nome do evento e o valor do atributo úsase como función de procesamento de eventos.
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
removeAllListeners
Cancela todos os oíntes de todos os eventos da cola de procesamento do obxecto. Se se especifica un evento, elimina todos os oíntes do evento especificado.
1Object WebSocket.removeAllListeners(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Cancela todos os oíntes de todos os eventos da cola de procesamento do obxecto. Se se especifica un evento, elimina todos os oíntes do evento especificado.
1Object WebSocket.removeAllListeners(Array evs = []);
Parámetros de chamada:
- evs: Matriz, especifique o nome do evento
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
setMaxListeners
O límite predeterminado no número de oíntes, só para compatibilidade
1WebSocket.setMaxListeners(Integer n);
Parámetros de chamada:
- n: Número enteiro, especifique o número de eventos
getMaxListeners
Obtén o número límite predeterminado de oíntes, só para compatibilidade
1Integer WebSocket.getMaxListeners();
Resultados de devolución:
- Integer, devolve a cantidade límite predeterminada
listeners
Consulta a matriz de escoita para o evento especificado do obxecto
1Array WebSocket.listeners(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultados de devolución:
- Array, devolve a matriz de escoita para o evento especificado
listenerCount
Consulta o número de oíntes para o evento especificado do obxecto
1Integer WebSocket.listenerCount(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultados de devolución:
- Integer, devolve o número de oíntes para o evento especificado
Consulta o número de oíntes para o evento especificado do obxecto
1
2Integer WebSocket.listenerCount(Value o,
String ev);
Parámetros de chamada:
- o: Valor, especifica o obxecto da consulta
- ev: Cadea, especifica o nome do evento
Resultados de devolución:
- Integer, devolve o número de oíntes para o evento especificado
eventNames
Consulta o nome do evento do oínte
1Array WebSocket.eventNames();
Resultados de devolución:
- Array, devolve unha matriz de nomes de eventos
emit
Activa un evento de forma activa
1
2Boolean WebSocket.emit(String ev,
...args);
Parámetros de chamada:
- ev: Cadea, nome do evento
- args: ..., os parámetros do evento pasaranse á función de procesamento de eventos
Resultados de devolución:
- Boolean, devolve o estado de activación do evento, devolve verdadeiro se hai un evento de resposta, se non, devolve falso
toString
Devolve a representación en cadea do obxecto. Polo xeral, devólvese "[Obxecto nativo]". O obxecto pódese volver implementar segundo as súas propias características.
1String WebSocket.toString();
Resultados de devolución:
- String, devolve a representación en cadea do obxecto
toJSON
Devolve unha representación en formato JSON do obxecto, devolvendo xeralmente unha colección de propiedades lexibles definidas polo obxecto.
1Value WebSocket.toJSON(String key = "");
Parámetros de chamada:
- key: Cadena, non usada
Resultados de devolución:
- Value, devolve un valor que contén JSON serializable