ObjetWebSocketMessage
WebSocketMessage
OuiWebSocketUn type de message dans un protocole qui encapsuleWebSocketLe format des données et les méthodes de traitement des différents messages dans le protocole de transmission peuvent être utilisés pourWebSocketLe client et le serveur communiquent.
Le constructeur de la classe WebSocketMessage
prend en charge un paramètre de type de message spécifié type
, qui a trois valeurs facultatives :
ws.TEXT
: Représente un message de type texte, le contenu est une chaîne.ws.BINARY
: Représente un message de type binaire, le contenu est une donnée binaire.
De plus, vous pouvez également WebSocketMessage.masked
spécifier si un masque doit être appliqué en modifiant l'attribut et WebSocketMessage.compress
si une compression est requise en utilisant l'attribut.
Le code suivant est un exemple de serveur websocket. Lorsqu'un client se connecte, le serveur renvoie le message reçu au client :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18var ws = require('ws');
var http = require('http');
var svr = new http.Server(8080, {
'/websocket': ws.upgrade((conn, req) => {
// emit message event
conn.onmessage = e => {
if (e.data.type == ws.TEXT) {
console.log(`接收到客户端发来的消息 ${e.data}`);
conn.send(e.data);
} else {
console.error(`收到未知类型消息 ${e.data.type}`);
}
}
conn.onclose = e => console.log('离开了一个客户端');
})
});
svr.start();
Dans ce programme, le module de support websocket et le module intégréhttpmodule puis crééhttpobjet de service et spécifiez le chemin de la demande à traiter, en appelantws.upgradeLa fonction met à niveau la demande du chemin correspondant vers une connexion websocket. Après avoir créé une connexion websocket, le serveur créera automatiquement unws.SocketObject et fournit des API onopen, onmessage, onclose et autres à gérer lorsqu'un client se connecte, reçoit un message et ferme des événements. Lors de la réception d'un message, le serveur déterminera le type du message. S'il s'agit d'un type de texte, il fera écho au message reçu. Ce qui précède est un simple flux de traitement du serveur Websocket, qui peut être modifié en fonction des besoins réels.
relation d'héritage
Constructeur
WebSocketMessage
Constructeur d'objet de message de gestion de packages
1
2
3
4new WebSocketMessage(Integer type = ws.BINARY,
Boolean masked = true,
Boolean compress = false,
Integer maxSize = 67108864);
Paramètres d'appel :
- type : Nombre entier, type de message websocket, la valeur par défaut est websocket.BINARY
- masked: Booléen, masque de message Websocket, la valeur par défaut est vraie
- compress: Booléen, marque si le message est compressé, la valeur par défaut est false
- maxSize: Nombre entier, taille maximale des paquets en Mo, la valeur par défaut est 67108864 (64 M)
constante
TEXT
Spécifiez le type de message 1, qui représente un type de texte
1const WebSocketMessage.TEXT = 1;
BINARY
Spécifiez le type de message 2, représentant un type binaire
1const WebSocketMessage.BINARY = 2;
propriétés des membres
masked
Booléen, interroger et lire l'indicateur de masque Websocket, la valeur par défaut est vraie
1Boolean WebSocketMessage.masked;
compress
Booléen, interroger et lire l'état de compression du websocket, la valeur par défaut est false
1Boolean WebSocketMessage.compress;
maxSize
Entier, interrogez et définissez la taille maximale du paquet en octets, la valeur par défaut est 67108864 (64 M)
1Integer WebSocketMessage.maxSize;
value
String, le contenu de base du message
1String WebSocketMessage.value;
params
NArray, les paramètres de base du message
1readonly NArray WebSocketMessage.params;
type
Entier, type de message
1Integer WebSocketMessage.type;
data
Valeur, interroge les données du message. Cet attribut renverra des données différentes en fonction du type de contenu. Lorsqu'il s'agit de texte, le texte sera renvoyé.jsonrevenir quandjson, sinon il renvoie du binaire
1readonly Value WebSocketMessage.data;
body
SeekableStream, un objet flux contenant la partie données du message
1SeekableStream WebSocketMessage.body;
length
Long : la longueur de la partie des données du message
1readonly Long WebSocketMessage.length;
stream
Stream, l'objet flux lors de l'interrogation du message readFrom
1readonly Stream WebSocketMessage.stream;
lastError
Chaîne, interroge et définit la dernière erreur de traitement du message
1String WebSocketMessage.lastError;
fonction membre
read
Lit des données de taille spécifiée à partir du flux.Cette méthode est un alias de la méthode correspondante de body.
1Buffer WebSocketMessage.read(Integer bytes = -1) async;
Paramètres d'appel :
- bytes : Nombre entier, spécifie la quantité de données à lire. La valeur par défaut est de lire des blocs de données de taille aléatoire. La taille des données lues dépend de l'appareil.
Résultats de retour :
- Buffer, renvoie les données lues à partir du flux. S'il n'y a aucune donnée à lire ou si la connexion est interrompue, null est renvoyé.
readAll
Lit toutes les données restantes du flux.Cette méthode est un alias de la méthode correspondante de body.
1Buffer WebSocketMessage.readAll() async;
Résultats de retour :
- Buffer, renvoie les données lues à partir du flux. S'il n'y a aucune donnée à lire ou si la connexion est interrompue, null est renvoyé.
write
Écrivez les données données.Cette méthode est un alias de la méthode correspondante dans le corps.
1WebSocketMessage.write(Buffer data) async;
Paramètres d'appel :
- data:Buffer, étant donné les données à écrire
json
Écrit les données données en codage JSON
1Value WebSocketMessage.json(Value data);
Paramètres d'appel :
- data: Valeur, compte tenu des données à écrire
Résultats de retour :
- Value, cette méthode ne renvoie pas de données
Analyser les données du message sous forme d'encodage JSON
1Value WebSocketMessage.json();
Résultats de retour :
- Value, renvoie le résultat analysé
pack
parmsgpackL'encodage écrit les données données
1Value WebSocketMessage.pack(Value data);
Paramètres d'appel :
- data: Valeur, compte tenu des données à écrire
Résultats de retour :
- Value, cette méthode ne renvoie pas de données
parmsgpackEncodage et analyse des données dans le message
1Value WebSocketMessage.pack();
Résultats de retour :
- Value, renvoie le résultat analysé
end
Définir la fin du traitement du message en cours,ChainLe processeur ne poursuit pas les transactions ultérieures
1WebSocketMessage.end();
isEnded
Demander si le message en cours est terminé
1Boolean WebSocketMessage.isEnded();
Résultats de retour :
- Boolean, renvoie vrai une fois terminé
clear
Contenu clair du message
1WebSocketMessage.clear();
sendTo
Envoie un message formaté à l'objet de flux donné
1WebSocketMessage.sendTo(Stream stm) async;
Paramètres d'appel :
- stm:Stream, spécifie l'objet de flux qui reçoit le message formaté
readFrom
Lit le message formaté à partir de l'objet de flux de cache donné et analyse l'objet renseigné
1WebSocketMessage.readFrom(Stream stm) async;
Paramètres d'appel :
- stm:Stream, spécifie l'objet de flux pour lire les messages formatés
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 WebSocketMessage.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 WebSocketMessage.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