ObjectWebSocketMessage
WebSocketMessage
JaWebSocketEin 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 WebSocketMessage
unterstü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.masked
durch Ändern des Attributs auch angeben, ob eine Maske angewendet werden muss und WebSocketMessage.compress
ob 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
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();
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
4new 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
1const WebSocketMessage.TEXT = 1;
BINARY
Geben Sie den Nachrichtentyp 2 an, der einen Binärtyp darstellt
1const WebSocketMessage.BINARY = 2;
Mitgliedereigenschaften
masked
Boolescher Wert, Abfrage- und Lese-Websocket-Maskenflag, Standardwert ist „true“.
1Boolean WebSocketMessage.masked;
compress
Boolescher Wert, WebSocket-Komprimierungsstatus abfragen und lesen, Standardwert ist „false“.
1Boolean 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).
1Integer WebSocketMessage.maxSize;
value
String, der grundlegende Inhalt der Nachricht
1String WebSocketMessage.value;
params
NArray, die Grundparameter der Nachricht
1readonly NArray WebSocketMessage.params;
type
Ganzzahl, Nachrichtentyp
1Integer 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
1readonly Value WebSocketMessage.data;
body
SeekableStream, ein Stream-Objekt, das den Datenteil der Nachricht enthält
1SeekableStream WebSocketMessage.body;
length
Long, die Länge des Nachrichtendatenteils
1readonly Long WebSocketMessage.length;
stream
Stream, das Stream-Objekt beim Abfragen der Nachricht readFrom
1readonly Stream WebSocketMessage.stream;
lastError
String, Abfrage und Setzen des letzten Fehlers der Nachrichtenverarbeitung
1String WebSocketMessage.lastError;
Mitgliedsfunktion
read
Liest Daten der angegebenen Größe aus dem Stream. Diese Methode ist ein Alias der entsprechenden Methode von body.
1Buffer 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.
1Buffer 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.
1WebSocketMessage.write(Buffer data) async;
Aufrufparameter:
- data:Buffer, angesichts der zu schreibenden Daten
json
Schreibt die angegebenen Daten in JSON-Codierung
1Value 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
1Value WebSocketMessage.json();
Rückgabeergebnisse:
- Value, gibt das analysierte Ergebnis zurück
pack
vonmsgpackBeim Codieren werden die angegebenen Daten geschrieben
1Value 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
1Value 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
1WebSocketMessage.end();
isEnded
Abfrage, ob die aktuelle Nachricht beendet ist
1Boolean WebSocketMessage.isEnded();
Rückgabeergebnisse:
- Boolean, gibt true zurück, wenn es fertig ist
clear
Klarer Nachrichteninhalt
1WebSocketMessage.clear();
sendTo
Sendet eine formatierte Nachricht an das angegebene Stream-Objekt
1WebSocketMessage.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
1WebSocketMessage.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.
1String 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.
1Value WebSocketMessage.toJSON(String key = "");
Aufrufparameter:
- key: Zeichenfolge, nicht verwendet
Rückgabeergebnisse:
- Value, gibt einen Wert zurück, der JSON serialisierbar enthält