Objet objet intégré

ObjetWebSocketMessage

WebSocketMessageOuiWebSocketUn 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 WebSocketMessageprend 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.maskedspécifier si un masque doit être appliqué en modifiant l'attribut et WebSocketMessage.compresssi 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 18
var 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 4
new 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

1
const WebSocketMessage.TEXT = 1;

BINARY

Spécifiez le type de message 2, représentant un type binaire

1
const 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

1
Boolean WebSocketMessage.masked;

compress

Booléen, interroger et lire l'état de compression du websocket, la valeur par défaut est false

1
Boolean WebSocketMessage.compress;

maxSize

Entier, interrogez et définissez la taille maximale du paquet en octets, la valeur par défaut est 67108864 (64 M)

1
Integer WebSocketMessage.maxSize;

value

String, le contenu de base du message

1
String WebSocketMessage.value;

params

NArray, les paramètres de base du message

1
readonly NArray WebSocketMessage.params;

type

Entier, type de message

1
Integer 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

1
readonly Value WebSocketMessage.data;

body

SeekableStream, un objet flux contenant la partie données du message

1
SeekableStream WebSocketMessage.body;

length

Long : la longueur de la partie des données du message

1
readonly Long WebSocketMessage.length;

stream

Stream, l'objet flux lors de l'interrogation du message readFrom

1
readonly Stream WebSocketMessage.stream;

lastError

Chaîne, interroge et définit la dernière erreur de traitement du message

1
String 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.

1
Buffer 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.

1
Buffer 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.

1
WebSocketMessage.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

1
Value 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

1
Value WebSocketMessage.json();

Résultats de retour :

  • Value, renvoie le résultat analysé

pack

parmsgpackL'encodage écrit les données données

1
Value 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

1
Value 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

1
WebSocketMessage.end();

isEnded

Demander si le message en cours est terminé

1
Boolean WebSocketMessage.isEnded();

Résultats de retour :

  • Boolean, renvoie vrai une fois terminé

clear

Contenu clair du message

1
WebSocketMessage.clear();

sendTo

Envoie un message formaté à l'objet de flux donné

1
WebSocketMessage.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é

1
WebSocketMessage.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.

1
String 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.

1
Value 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