Objekt integriertes Objekt

ObjectWebSocketMessage

WebSocketMessageJaWebSocketEin Nachrichtentyp in einem Protokoll, das kapseltWebSocketDabei können das Datenformat und die Verarbeitungsmethoden verschiedener Nachrichten im Übertragungsprotokoll genutzt werdenWebSocketDer Client und der Server kommunizieren.

Der Konstruktor der Klasse WebSocketMessageunterstützt einen angegebenen Nachrichtentypparameter type, der drei optionale Werte hat:

  • ws.TEXT: Stellt eine Textnachricht dar, der Inhalt ist eine Zeichenfolge.
  • ws.BINARY: Stellt eine Nachricht vom Binärtyp dar, der Inhalt sind Binärdaten.

Darüber hinaus können Sie WebSocketMessage.maskeddurch Ändern des Attributs auch angeben, ob eine Maske angewendet werden muss und WebSocketMessage.compressob durch Verwendung des Attributs eine Komprimierung erforderlich ist.

Der folgende Code ist ein Beispiel für einen Websocket-Server. Wenn ein Client eine Verbindung herstellt, gibt der Server die empfangene Nachricht an den Client zurück:

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();

In diesem Programm sind das WebSocket-Unterstützungsmodul und die integrierten Funktionen enthaltenhttpModul erstellt und dann erstellthttpServiceobjekt und geben Sie den zu verarbeitenden Anforderungspfad anws.upgradeDie Funktion wertet die Anfrage des entsprechenden Pfades auf eine Websocket-Verbindung auf. Nach dem Erstellen einer WebSocket-Verbindung erstellt der Server automatisch einews.SocketObjekt und stellt onopen, onmessage, onclose und andere APIs zur Verfügung, um zu verarbeiten, wenn ein Client eine Verbindung herstellt, eine Nachricht empfängt und Ereignisse schließt. Beim Empfang einer Nachricht bestimmt der Server den Typ der Nachricht. Wenn es sich um einen Texttyp handelt, gibt er die empfangene Nachricht zurück. Das Obige ist ein einfacher WebSocket-Server-Verarbeitungsablauf, der je nach tatsächlichem Bedarf geändert werden kann.

Erbschaftsverhältnis

Konstrukteur

WebSocketMessage

Konstruktor für Paketverarbeitungsnachrichtenobjekte

1 2 3 4
new WebSocketMessage(Integer type = ws.BINARY, Boolean masked = true, Boolean compress = false, Integer maxSize = 67108864);

Aufrufparameter:

  • type: Ganzzahl, Websocket-Nachrichtentyp, Standard ist websocket.BINARY
  • masked: Boolescher Wert, Websocket-Nachrichtenmaske, Standardwert ist true
  • compress: Boolean, markiert, ob die Nachricht komprimiert ist, der Standardwert ist false
  • maxSize: Ganzzahl, maximale Paketgröße in MB, Standard ist 67108864 (64 MB)

Konstante

TEXT

Geben Sie den Nachrichtentyp 1 an, der einen Texttyp darstellt

1
const WebSocketMessage.TEXT = 1;

BINARY

Geben Sie den Nachrichtentyp 2 an, der einen Binärtyp darstellt

1
const WebSocketMessage.BINARY = 2;

Mitgliedereigenschaften

masked

Boolescher Wert, Abfrage- und Lese-Websocket-Maskenflag, Standardwert ist „true“.

1
Boolean WebSocketMessage.masked;

compress

Boolescher Wert, WebSocket-Komprimierungsstatus abfragen und lesen, Standardwert ist „false“.

1
Boolean WebSocketMessage.compress;

maxSize

Geben Sie eine Ganzzahl ein, fragen Sie die maximale Paketgröße in Bytes ab und legen Sie sie fest. Der Standardwert ist 67108864 (64 MB).

1
Integer WebSocketMessage.maxSize;

value

String, der grundlegende Inhalt der Nachricht

1
String WebSocketMessage.value;

params

NArray, die Grundparameter der Nachricht

1
readonly NArray WebSocketMessage.params;

type

Ganzzahl, Nachrichtentyp

1
Integer WebSocketMessage.type;

data

Wert: Fragen Sie die Daten der Nachricht ab. Dieses Attribut gibt je nach Inhaltstyp unterschiedliche Daten zurück. Wenn es sich um Text handelt, wird der Text zurückgegeben.jsonwann zurückkommenjson, andernfalls wird binär zurückgegeben

1
readonly Value WebSocketMessage.data;

body

SeekableStream, ein Stream-Objekt, das den Datenteil der Nachricht enthält

1
SeekableStream WebSocketMessage.body;

length

Long, die Länge des Nachrichtendatenteils

1
readonly Long WebSocketMessage.length;

stream

Stream, das Stream-Objekt beim Abfragen der Nachricht readFrom

1
readonly Stream WebSocketMessage.stream;

lastError

String, Abfrage und Setzen des letzten Fehlers der Nachrichtenverarbeitung

1
String WebSocketMessage.lastError;

Mitgliedsfunktion

read

Liest Daten der angegebenen Größe aus dem Stream. Diese Methode ist ein Alias ​​der entsprechenden Methode von body.

1
Buffer WebSocketMessage.read(Integer bytes = -1) async;

Aufrufparameter:

  • bytes: Ganzzahl, gibt die Menge der zu lesenden Daten an. Standardmäßig werden Datenblöcke zufälliger Größe gelesen. Die Größe der gelesenen Daten hängt vom Gerät ab.

Rückgabeergebnisse:

  • Buffer, gibt die aus dem Stream gelesenen Daten zurück. Wenn keine Daten zum Lesen vorhanden sind oder die Verbindung unterbrochen ist, wird null zurückgegeben.

readAll

Liest alle verbleibenden Daten aus dem Stream. Diese Methode ist ein Alias ​​der entsprechenden Methode von body.

1
Buffer WebSocketMessage.readAll() async;

Rückgabeergebnisse:

  • Buffer, gibt die aus dem Stream gelesenen Daten zurück. Wenn keine Daten zum Lesen vorhanden sind oder die Verbindung unterbrochen ist, wird null zurückgegeben.

write

Schreiben Sie die angegebenen Daten. Diese Methode ist ein Alias ​​der entsprechenden Methode im Hauptteil.

1
WebSocketMessage.write(Buffer data) async;

Aufrufparameter:

  • data:Buffer, angesichts der zu schreibenden Daten

json

Schreibt die angegebenen Daten in JSON-Codierung

1
Value WebSocketMessage.json(Value data);

Aufrufparameter:

  • data: Wert angesichts der zu schreibenden Daten

Rückgabeergebnisse:

  • Value, diese Methode gibt keine Daten zurück

Analysieren Sie die Daten in der Nachricht als JSON-Codierung

1
Value WebSocketMessage.json();

Rückgabeergebnisse:

  • Value, gibt das analysierte Ergebnis zurück

pack

vonmsgpackBeim Codieren werden die angegebenen Daten geschrieben

1
Value WebSocketMessage.pack(Value data);

Aufrufparameter:

  • data: Wert angesichts der zu schreibenden Daten

Rückgabeergebnisse:

  • Value, diese Methode gibt keine Daten zurück

vonmsgpackCodieren und Parsen der Daten in der Nachricht

1
Value WebSocketMessage.pack();

Rückgabeergebnisse:

  • Value, gibt das analysierte Ergebnis zurück

end

Legen Sie das Ende der aktuellen Nachrichtenverarbeitung fest.ChainDer Prozessor fährt mit nachfolgenden Transaktionen nicht fort

1
WebSocketMessage.end();

isEnded

Abfrage, ob die aktuelle Nachricht beendet ist

1
Boolean WebSocketMessage.isEnded();

Rückgabeergebnisse:

  • Boolean, gibt true zurück, wenn es fertig ist

clear

Klarer Nachrichteninhalt

1
WebSocketMessage.clear();

sendTo

Sendet eine formatierte Nachricht an das angegebene Stream-Objekt

1
WebSocketMessage.sendTo(Stream stm) async;

Aufrufparameter:

  • stm:Stream, gibt das Stream-Objekt an, das die formatierte Nachricht empfängt

readFrom

Liest die formatierte Nachricht aus dem angegebenen Cache-Stream-Objekt und analysiert das aufgefüllte Objekt

1
WebSocketMessage.readFrom(Stream stm) async;

Aufrufparameter:

  • stm:Stream, gibt das Stream-Objekt zum Lesen formatierter Nachrichten an

toString

Gibt die Zeichenfolgendarstellung des Objekts zurück. Im Allgemeinen wird „[Native Object]“ zurückgegeben. Das Objekt kann gemäß seinen eigenen Eigenschaften neu implementiert werden.

1
String WebSocketMessage.toString();

Rückgabeergebnisse:

  • String, gibt die Zeichenfolgendarstellung des Objekts zurück

toJSON

Gibt eine Darstellung des Objekts im JSON-Format zurück und gibt im Allgemeinen eine Sammlung lesbarer Eigenschaften zurück, die vom Objekt definiert werden.

1
Value WebSocketMessage.toJSON(String key = "");

Aufrufparameter:

  • key: Zeichenfolge, nicht verwendet

Rückgabeergebnisse:

  • Value, gibt einen Wert zurück, der JSON serialisierbar enthält