ObjetoWebSocket
WebSocket es un protocolo de comunicación full-duplex basado en el protocolo TCP, que establece una conexión ininterrumpida entre el navegador y el servidor, puede realizar una transmisión de datos bidireccional en tiempo real y puede admitir la transmisión de datos en cualquier formato. En fibjs, el módulo de soporte WebSocket proporciona la interfaz API correspondiente, que puede realizar el desarrollo del servidor y cliente WebSocket.
El módulo de soporte WebSocket es solo una implementación del protocolo WebSocket y debe funcionar sobre el protocolo HTTP. En el lado del servidor, la solicitud HTTP se puede convertir en una conexión WebSocket a través de la función de actualización, mientras que en el lado del cliente, la dirección del servidor a conectar debe especificarse a través de la URL del protocolo WebSocket.
Ejemplo de inicio de un 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();
Ejemplo de establecimiento de una conexión con el servidor anterior en el 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 herencia
Constructor
WebSocket
Constructor de WebSockets
1
2
3new WebSocket(String url,
String protocol = "",
String origin = "");
Parámetros de llamada:
- url: Cadena, especifica el servidor conectado
- protocol: Cadena, especifica el protocolo de protocolo de enlace, el valor predeterminado es ""
- origin: Cadena, especifica la fuente de simulación durante el protocolo de enlace, el valor predeterminado es ""
Constructor de WebSockets
1
2new WebSocket(String url,
Object opts);
Parámetros de llamada:
- url: Cadena, especifica el servidor conectado
- opts: Objeto, opción de conexión, el valor predeterminado es {}
opts contiene opciones adicionales para la solicitud, respaldadas de la siguiente manera:
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
Entero, el número máximo global predeterminado de oyentes
1static Integer WebSocket.defaultMaxListeners;
propiedades de miembros
url
Cadena, consulta el servidor al que está conectado el objeto actual
1readonly String WebSocket.url;
protocol
Cadena, consulta el protocolo de conexión del objeto actual
1readonly String WebSocket.protocol;
origin
Cadena, consulta la fuente de la conexión del objeto actual
1readonly String WebSocket.origin;
readyState
Entero, consulta el estado de conexión del objeto actual, consultews
1readonly Integer WebSocket.readyState;
onopen
Función, consulta y vinculación de eventos exitosos de conexión, equivalente a on("open", func);
1Function WebSocket.onopen;
onmessage
Función, consulta y vincula eventos que reciben mensajes de la otra parte, equivalente a on("message", func);
1Function WebSocket.onmessage;
onclose
Función, consulta y vincula eventos de cierre de conexión, equivalente a on("close", func);
1Function WebSocket.onclose;
onerror
Funcionar, consultar y vincular eventos cuando se produzcan errores, equivalente a on("error", func);
1Function WebSocket.onerror;
función miembro
close
Cierre la conexión actual. Esta operación enviará un paquete CERRAR a la otra parte y esperará a que la otra parte responda.
1
2WebSocket.close(Integer code = 1000,
String reason = "");
Parámetros de llamada:
- code: Entero, especifica el código de apagado, el valor permitido es 3000-4999 o 1000, el valor predeterminado es 1000
- reason: Cadena, especifica el motivo del apagado, el valor predeterminado es ""
send
Enviar un mensaje de texto a la otra parte
1WebSocket.send(String data);
Parámetros de llamada:
- data: Cadena, especifica el texto a enviar
Enviar un dato binario a la otra parte
1WebSocket.send(Buffer data);
Parámetros de llamada:
- data:Buffer, especifica los datos binarios enviados
ref
Evite que el proceso fibjs salga y evite que el proceso fibjs salga durante el enlace de objetos
1WebSocket WebSocket.ref();
Resultados de devolución:
- WebSocket, devuelve el objeto actual
unref
Permitir que el proceso fibjs salga.Permitir que el proceso fibjs salga durante el enlace del objeto.
1WebSocket WebSocket.unref();
Resultados de devolución:
- WebSocket, devuelve el objeto actual
on
Vincular un controlador de eventos al objeto
1
2Object WebSocket.on(String ev,
Function func);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
- func: Función, especifique la función de procesamiento de eventos
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Vincular un controlador de eventos al objeto
1Object WebSocket.on(Object map);
Parámetros de llamada:
- map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usará como nombre del evento y el valor del atributo se usará como función de procesamiento de eventos.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
addListener
Vincular un controlador de eventos al objeto
1
2Object WebSocket.addListener(String ev,
Function func);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
- func: Función, especifique la función de procesamiento de eventos
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Vincular un controlador de eventos al objeto
1Object WebSocket.addListener(Object map);
Parámetros de llamada:
- map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usará como nombre del evento y el valor del atributo se usará como función de procesamiento de eventos.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
prependListener
Vincular un controlador de eventos al origen del objeto
1
2Object WebSocket.prependListener(String ev,
Function func);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
- func: Función, especifique la función de procesamiento de eventos
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Vincular un controlador de eventos al origen del objeto
1Object WebSocket.prependListener(Object map);
Parámetros de llamada:
- map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usará como nombre del evento y el valor del atributo se usará como función de procesamiento de eventos.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
once
Vincula un controlador de eventos de una sola vez al objeto. El controlador de eventos de una sola vez solo se activará una vez.
1
2Object WebSocket.once(String ev,
Function func);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
- func: Función, especifique la función de procesamiento de eventos
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Vincula un controlador de eventos de una sola vez al objeto. El controlador de eventos de una sola vez solo se activará una vez.
1Object WebSocket.once(Object map);
Parámetros de llamada:
- map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usará como nombre del evento y el valor del atributo se usará como función de procesamiento de eventos.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
prependOnceListener
Vincular un controlador de eventos al origen del objeto
1
2Object WebSocket.prependOnceListener(String ev,
Function func);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
- func: Función, especifique la función de procesamiento de eventos
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Vincular un controlador de eventos al origen del objeto
1Object WebSocket.prependOnceListener(Object map);
Parámetros de llamada:
- map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usará como nombre del evento y el valor del atributo se usará como función de procesamiento de eventos.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
off
Desasignar una función de la cola de procesamiento de objetos
1
2Object WebSocket.off(String ev,
Function func);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
- func: Función, especifique la función de procesamiento de eventos
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Cancelar todas las funciones en la cola de procesamiento de objetos
1Object WebSocket.off(String ev);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Desasignar una función de la cola de procesamiento de objetos
1Object WebSocket.off(Object map);
Parámetros de llamada:
- map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usa como nombre del evento y el valor del atributo se usa como función de procesamiento de eventos.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
removeListener
Desasignar una función de la cola de procesamiento de objetos
1
2Object WebSocket.removeListener(String ev,
Function func);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
- func: Función, especifique la función de procesamiento de eventos
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Cancelar todas las funciones en la cola de procesamiento de objetos
1Object WebSocket.removeListener(String ev);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Desasignar una función de la cola de procesamiento de objetos
1Object WebSocket.removeListener(Object map);
Parámetros de llamada:
- map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usa como nombre del evento y el valor del atributo se usa como función de procesamiento de eventos.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
removeAllListeners
Cancela todos los oyentes de todos los eventos de la cola de procesamiento del objeto. Si se especifica un evento, elimina todos los oyentes del evento especificado.
1Object WebSocket.removeAllListeners(String ev);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Cancela todos los oyentes de todos los eventos de la cola de procesamiento del objeto. Si se especifica un evento, elimina todos los oyentes del evento especificado.
1Object WebSocket.removeAllListeners(Array evs = []);
Parámetros de llamada:
- evs: Matriz, especifique el nombre del evento
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
setMaxListeners
El límite predeterminado en la cantidad de oyentes, solo por compatibilidad
1WebSocket.setMaxListeners(Integer n);
Parámetros de llamada:
- n: Entero, especifica el número de eventos
getMaxListeners
Obtiene el número límite predeterminado de oyentes, solo por compatibilidad
1Integer WebSocket.getMaxListeners();
Resultados de devolución:
- Integer, devuelve la cantidad límite predeterminada
listeners
Consultar la matriz de escucha para el evento especificado del objeto.
1Array WebSocket.listeners(String ev);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
Resultados de devolución:
- Array, devuelve la matriz de escucha para el evento especificado
listenerCount
Consultar el número de oyentes para el evento especificado del objeto.
1Integer WebSocket.listenerCount(String ev);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
Resultados de devolución:
- Integer, devuelve el número de oyentes para el evento especificado
Consultar el número de oyentes para el evento especificado del objeto.
1
2Integer WebSocket.listenerCount(Value o,
String ev);
Parámetros de llamada:
- o: Valor, especifica el objeto de la consulta.
- ev: Cadena, especifica el nombre del evento.
Resultados de devolución:
- Integer, devuelve el número de oyentes para el evento especificado
eventNames
Nombre del evento del oyente de consultas
1Array WebSocket.eventNames();
Resultados de devolución:
- Array, devuelve una serie de nombres de eventos
emit
Activar activamente un evento
1
2Boolean WebSocket.emit(String ev,
...args);
Parámetros de llamada:
- ev: Cadena, nombre del evento
- args: ..., los parámetros del evento se pasarán a la función de procesamiento de eventos
Resultados de devolución:
- Boolean, devuelve el estado del activador del evento, devuelve verdadero si hay un evento de respuesta; de lo contrario, devuelve falso
toString
Devuelve la representación de cadena del objeto. Generalmente, se devuelve "[Objeto nativo]". El objeto se puede volver a implementar de acuerdo con sus propias características.
1String WebSocket.toString();
Resultados de devolución:
- String, devuelve la representación de cadena del objeto
toJSON
Devuelve una representación en formato JSON del objeto, que generalmente devuelve una colección de propiedades legibles definidas por el objeto.
1Value WebSocket.toJSON(String key = "");
Parámetros de llamada:
- key: Cadena, no utilizada
Resultados de devolución:
- Value, devuelve un valor que contiene JSON serializable