ObjetWebSocket
WebSocket est un protocole de communication full duplex basé sur le protocole TCP. Il établit une connexion ininterrompue entre le navigateur et le serveur, peut réaliser une transmission de données bidirectionnelle en temps réel et prendre en charge la transmission de données dans n'importe quel format. Dans fibjs, le module de support WebSocket fournit l'interface API correspondante, qui peut réaliser le développement du serveur et du client WebSocket.
Le module de support WebSocket n'est qu'une implémentation du protocole WebSocket et doit fonctionner au-dessus du protocole HTTP. Côté serveur, la requête HTTP peut être convertie en connexion WebSocket via la fonction de mise à niveau, tandis que côté client, l'adresse du serveur à connecter doit être spécifiée via l'URL du protocole WebSocket.
Exemple de démarrage d'un serveur 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();
Exemple d'établissement d'une connexion au serveur ci-dessus dans le client :
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);
};
relation d'héritage
Constructeur
WebSocket
Constructeur WebSocket
1
2
3new WebSocket(String url,
String protocol = "",
String origin = "");
Paramètres d'appel :
- url: String, spécifie le serveur connecté
- protocol: String, spécifie le protocole de prise de contact, la valeur par défaut est ""
- origin: String, spécifie la source de simulation lors de la prise de contact, la valeur par défaut est ""
Constructeur WebSocket
1
2new WebSocket(String url,
Object opts);
Paramètres d'appel :
- url: String, spécifie le serveur connecté
- opts: Objet, option de connexion, la valeur par défaut est {}
opts contient des options supplémentaires pour la demande, prises en charge comme suit :
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 {}
}
propriétés statiques
defaultMaxListeners
Entier, le nombre maximum global d'auditeurs par défaut
1static Integer WebSocket.defaultMaxListeners;
propriétés des membres
url
String, interroge le serveur auquel l'objet actuel est connecté
1readonly String WebSocket.url;
protocol
Chaîne, interroge le protocole de connexion actuelle à l'objet
1readonly String WebSocket.protocol;
origin
Chaîne, interrogez la source de la connexion d'objet actuelle
1readonly String WebSocket.origin;
readyState
Entier, interrogez l'état de connexion de l'objet actuel, voirws
1readonly Integer WebSocket.readyState;
onopen
Événements de réussite de connexion de fonction, de requête et de liaison, équivalents à on("open", func);
1Function WebSocket.onopen;
onmessage
Fonctionne, interroge et lie les événements qui reçoivent des messages de l'autre partie, équivalent à on("message", func);
1Function WebSocket.onmessage;
onclose
Fonction, interroge et lie les événements de fermeture de connexion, équivalents à on("close", func);
1Function WebSocket.onclose;
onerror
Fonctionne, interroge et lie des événements lorsque des erreurs se produisent, équivalent à on("error", func);
1Function WebSocket.onerror;
fonction membre
close
Fermez la connexion en cours. Cette opération enverra un paquet CLOSE à l'autre partie et attendra que l'autre partie réponde.
1
2WebSocket.close(Integer code = 1000,
String reason = "");
Paramètres d'appel :
- code: Entier, spécifie le code d'arrêt, la valeur autorisée est 3000-4999 ou 1000, la valeur par défaut est 1000
- reason: Chaîne, spécifie la raison de l'arrêt, la valeur par défaut est ""
send
Envoyer un SMS à l'autre partie
1WebSocket.send(String data);
Paramètres d'appel :
- data: String, précise le texte à envoyer
Envoyer un morceau de données binaires à l'autre partie
1WebSocket.send(Buffer data);
Paramètres d'appel :
- data:Buffer, précisez les données binaires envoyées
ref
Empêcher le processus fibjs de se terminer et empêcher le processus fibjs de se terminer pendant la liaison d'objet
1WebSocket WebSocket.ref();
Résultats de retour :
- WebSocket, renvoie l'objet actuel
unref
Autoriser le processus fibjs à se terminer. Autoriser le processus fibjs à se terminer pendant la liaison d'objet.
1WebSocket WebSocket.unref();
Résultats de retour :
- WebSocket, renvoie l'objet actuel
on
Lier un gestionnaire d'événements à l'objet
1
2Object WebSocket.on(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Lier un gestionnaire d'événements à l'objet
1Object WebSocket.on(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
addListener
Lier un gestionnaire d'événements à l'objet
1
2Object WebSocket.addListener(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Lier un gestionnaire d'événements à l'objet
1Object WebSocket.addListener(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
prependListener
Lier un gestionnaire d'événements à l'origine de l'objet
1
2Object WebSocket.prependListener(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Lier un gestionnaire d'événements à l'origine de l'objet
1Object WebSocket.prependListener(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
once
Liez un gestionnaire d'événement unique à l'objet.Le gestionnaire unique ne sera déclenché qu'une seule fois.
1
2Object WebSocket.once(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Liez un gestionnaire d'événement unique à l'objet.Le gestionnaire unique ne sera déclenché qu'une seule fois.
1Object WebSocket.once(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
prependOnceListener
Lier un gestionnaire d'événements à l'origine de l'objet
1
2Object WebSocket.prependOnceListener(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Lier un gestionnaire d'événements à l'origine de l'objet
1Object WebSocket.prependOnceListener(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
off
Désaffecter une fonction de la file d'attente de traitement des objets
1
2Object WebSocket.off(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Annuler toutes les fonctions dans la file d'attente de traitement des objets
1Object WebSocket.off(String ev);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Désaffecter une fonction de la file d'attente de traitement des objets
1Object WebSocket.off(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet est utilisé comme nom d'événement et la valeur de l'attribut est utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
removeListener
Désaffecter une fonction de la file d'attente de traitement des objets
1
2Object WebSocket.removeListener(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Annuler toutes les fonctions dans la file d'attente de traitement des objets
1Object WebSocket.removeListener(String ev);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Désaffecter une fonction de la file d'attente de traitement des objets
1Object WebSocket.removeListener(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet est utilisé comme nom d'événement et la valeur de l'attribut est utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
removeAllListeners
Annule tous les écouteurs de tous les événements de la file d'attente de traitement de l'objet. Si un événement est spécifié, supprime tous les écouteurs de l'événement spécifié.
1Object WebSocket.removeAllListeners(String ev);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Annule tous les écouteurs de tous les événements de la file d'attente de traitement de l'objet. Si un événement est spécifié, supprime tous les écouteurs de l'événement spécifié.
1Object WebSocket.removeAllListeners(Array evs = []);
Paramètres d'appel :
- evs: Tableau, précisez le nom de l'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
setMaxListeners
La limite par défaut du nombre d'auditeurs, pour des raisons de compatibilité uniquement
1WebSocket.setMaxListeners(Integer n);
Paramètres d'appel :
- n: Entier, précisez le nombre d'événements
getMaxListeners
Obtient le nombre limite par défaut d'écouteurs, pour des raisons de compatibilité uniquement
1Integer WebSocket.getMaxListeners();
Résultats de retour :
- Integer, renvoie la quantité limite par défaut
listeners
Interrogez le tableau d'écoute pour l'événement spécifié de l'objet
1Array WebSocket.listeners(String ev);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Array, renvoie le tableau d'écoute pour l'événement spécifié
listenerCount
Interroger le nombre d'écouteurs pour l'événement spécifié de l'objet
1Integer WebSocket.listenerCount(String ev);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Integer, renvoie le nombre d'écouteurs pour l'événement spécifié
Interroger le nombre d'écouteurs pour l'événement spécifié de l'objet
1
2Integer WebSocket.listenerCount(Value o,
String ev);
Paramètres d'appel :
- o: Valeur, précise l'objet de la requête
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Integer, renvoie le nombre d'écouteurs pour l'événement spécifié
eventNames
Nom de l'événement d'écoute de requête
1Array WebSocket.eventNames();
Résultats de retour :
- Array, renvoie un tableau de noms d'événements
emit
Déclencher activement un événement
1
2Boolean WebSocket.emit(String ev,
...args);
Paramètres d'appel :
- ev: Chaîne, nom de l'événement
- args: ..., les paramètres de l'événement seront transmis à la fonction de traitement des événements
Résultats de retour :
- Boolean, renvoie l'état du déclencheur d'événement, renvoie vrai s'il y a un événement de réponse, sinon renvoie faux
toString
Renvoie la représentation sous forme de chaîne de l'objet. Généralement, "[Native Object]" est renvoyé. L'objet peut être réimplémenté en fonction de ses propres caractéristiques.
1String WebSocket.toString();
Résultats de retour :
- String, renvoie la représentation sous forme de chaîne de l'objet
toJSON
Renvoie une représentation au format JSON de l'objet, renvoyant généralement une collection de propriétés lisibles définies par l'objet.
1Value WebSocket.toJSON(String key = "");
Paramètres d'appel :
- key: Chaîne, non utilisée
Résultats de retour :
- Value, renvoie une valeur contenant du JSON sérialisable