ObjectWebSocket
WebSocket ist ein Vollduplex-Kommunikationsprotokoll, das auf dem TCP-Protokoll basiert. Es stellt eine unterbrechungsfreie Verbindung zwischen dem Browser und dem Server her, kann eine bidirektionale Datenübertragung in Echtzeit realisieren und die Datenübertragung in jedem Format unterstützen. In fibjs stellt das WebSocket-Unterstützungsmodul die entsprechende API-Schnittstelle bereit, mit der die Entwicklung von WebSocket-Servern und -Clients realisiert werden kann.
Das WebSocket-Unterstützungsmodul ist lediglich eine Implementierung des WebSocket-Protokolls und muss auf dem HTTP-Protokoll aufbauen. Auf der Serverseite kann die HTTP-Anfrage über die Upgrade-Funktion in eine WebSocket-Verbindung umgewandelt werden, während auf der Clientseite die zu verbindende Serveradresse über die URL des WebSocket-Protokolls angegeben werden muss.
Beispiel für den Start eines WebSocket-Servers:
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();
Beispiel für den Verbindungsaufbau zum oben genannten Server im 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);
};
Erbschaftsverhältnis
Konstrukteur
WebSocket
WebSocket-Konstruktor
1
2
3new WebSocket(String url,
String protocol = "",
String origin = "");
Aufrufparameter:
- url: String, gibt den verbundenen Server an
- protocol: String, gibt das Handshake-Protokoll an, der Standardwert ist „“
- origin: String, gibt die Quelle der Simulation während des Handshakes an, der Standardwert ist „“
WebSocket-Konstruktor
1
2new WebSocket(String url,
Object opts);
Aufrufparameter:
- url: String, gibt den verbundenen Server an
- opts: Objekt, Verbindungsoption, Standard ist {}
opts enthält zusätzliche Optionen für die Anfrage, die wie folgt unterstützt werden:
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 {}
}
statische Eigenschaften
defaultMaxListeners
Ganzzahl, die standardmäßige globale maximale Anzahl von Listenern
1static Integer WebSocket.defaultMaxListeners;
Mitgliedereigenschaften
url
String, fragen Sie den Server ab, mit dem das aktuelle Objekt verbunden ist
1readonly String WebSocket.url;
protocol
Zeichenfolge, Abfrage des Protokolls der aktuellen Objektverbindung
1readonly String WebSocket.protocol;
origin
String, fragen Sie die Quelle der aktuellen Objektverbindung ab
1readonly String WebSocket.origin;
readyState
Ganzzahl, fragen Sie den Verbindungsstatus des aktuellen Objekts ab, siehews
1readonly Integer WebSocket.readyState;
onopen
Funktion, Abfrage und Verbindungserfolgsereignisse binden, äquivalent zu on("open", func);
1Function WebSocket.onopen;
onmessage
Funktion, Abfrage und Bindung von Ereignissen, die Nachrichten von der anderen Partei empfangen, äquivalent zu on("message", func);
1Function WebSocket.onmessage;
onclose
Funktion, fragt Ereignisse zum Schließen von Verbindungen ab und bindet sie, äquivalent zu on("close", func);
1Function WebSocket.onclose;
onerror
Funktion, Abfrage und Bindung von Ereignissen, wenn Fehler auftreten, äquivalent zu on("error", func);
1Function WebSocket.onerror;
Mitgliedsfunktion
close
Schließen Sie die aktuelle Verbindung. Bei diesem Vorgang wird ein CLOSE-Paket an die andere Partei gesendet und auf die Antwort der anderen Partei gewartet.
1
2WebSocket.close(Integer code = 1000,
String reason = "");
Aufrufparameter:
- code: Ganzzahl, gibt den Abschaltcode an, der zulässige Wert ist 3000-4999 oder 1000, der Standardwert ist 1000
- reason: String, gibt den Grund für das Herunterfahren an, der Standardwert ist „“
send
Senden Sie eine SMS an die andere Partei
1WebSocket.send(String data);
Aufrufparameter:
- data: String, gibt den zu sendenden Text an
Senden Sie ein Stück Binärdaten an die andere Partei
1WebSocket.send(Buffer data);
Aufrufparameter:
- data:BufferGeben Sie die gesendeten Binärdaten an
ref
Verhindern Sie, dass der fibjs-Prozess beendet wird, und verhindern Sie, dass der fibjs-Prozess während der Objektbindung beendet wird
1WebSocket WebSocket.ref();
Rückgabeergebnisse:
- WebSocket, gibt das aktuelle Objekt zurück
unref
Beenden des fibjs-Prozesses zulassen. Ermöglichen, dass der fibjs-Prozess während der Objektbindung beendet wird.
1WebSocket WebSocket.unref();
Rückgabeergebnisse:
- WebSocket, gibt das aktuelle Objekt zurück
on
Binden Sie einen Event-Handler an das Objekt
1
2Object WebSocket.on(String ev,
Function func);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
- func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Binden Sie einen Event-Handler an das Objekt
1Object WebSocket.on(Object map);
Aufrufparameter:
- map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
addListener
Binden Sie einen Event-Handler an das Objekt
1
2Object WebSocket.addListener(String ev,
Function func);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
- func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Binden Sie einen Event-Handler an das Objekt
1Object WebSocket.addListener(Object map);
Aufrufparameter:
- map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
prependListener
Binden Sie einen Ereignishandler an den Ursprung des Objekts
1
2Object WebSocket.prependListener(String ev,
Function func);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
- func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Binden Sie einen Ereignishandler an den Ursprung des Objekts
1Object WebSocket.prependListener(Object map);
Aufrufparameter:
- map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
once
Binden Sie einen einmaligen Ereignishandler an das Objekt. Der einmalige Handler wird nur einmal ausgelöst.
1
2Object WebSocket.once(String ev,
Function func);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
- func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Binden Sie einen einmaligen Ereignishandler an das Objekt. Der einmalige Handler wird nur einmal ausgelöst.
1Object WebSocket.once(Object map);
Aufrufparameter:
- map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
prependOnceListener
Binden Sie einen Ereignishandler an den Ursprung des Objekts
1
2Object WebSocket.prependOnceListener(String ev,
Function func);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
- func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Binden Sie einen Ereignishandler an den Ursprung des Objekts
1Object WebSocket.prependOnceListener(Object map);
Aufrufparameter:
- map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
off
Heben Sie die Zuweisung einer Funktion zur Objektverarbeitungswarteschlange auf
1
2Object WebSocket.off(String ev,
Function func);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
- func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Brechen Sie alle Funktionen in der Objektverarbeitungswarteschlange ab
1Object WebSocket.off(String ev);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Heben Sie die Zuweisung einer Funktion zur Objektverarbeitungswarteschlange auf
1Object WebSocket.off(Object map);
Aufrufparameter:
- map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
removeListener
Heben Sie die Zuweisung einer Funktion zur Objektverarbeitungswarteschlange auf
1
2Object WebSocket.removeListener(String ev,
Function func);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
- func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Brechen Sie alle Funktionen in der Objektverarbeitungswarteschlange ab
1Object WebSocket.removeListener(String ev);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Heben Sie die Zuweisung einer Funktion zur Objektverarbeitungswarteschlange auf
1Object WebSocket.removeListener(Object map);
Aufrufparameter:
- map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
removeAllListeners
Löscht alle Listener für alle Ereignisse aus der Verarbeitungswarteschlange des Objekts. Wenn ein Ereignis angegeben ist, werden alle Listener für das angegebene Ereignis entfernt.
1Object WebSocket.removeAllListeners(String ev);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Löscht alle Listener für alle Ereignisse aus der Verarbeitungswarteschlange des Objekts. Wenn ein Ereignis angegeben ist, werden alle Listener für das angegebene Ereignis entfernt.
1Object WebSocket.removeAllListeners(Array evs = []);
Aufrufparameter:
- evs: Array, geben Sie den Namen des Ereignisses an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
setMaxListeners
Die Standardbeschränkung für die Anzahl der Listener dient nur der Kompatibilität
1WebSocket.setMaxListeners(Integer n);
Aufrufparameter:
- n: Ganzzahl, geben Sie die Anzahl der Ereignisse an
getMaxListeners
Ruft nur aus Kompatibilitätsgründen die standardmäßige maximale Anzahl von Listenern ab
1Integer WebSocket.getMaxListeners();
Rückgabeergebnisse:
- Integer, gibt die Standardgrenzmenge zurück
listeners
Fragen Sie das Listener-Array nach dem angegebenen Ereignis des Objekts ab
1Array WebSocket.listeners(String ev);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
Rückgabeergebnisse:
- Array, gibt das Listener-Array für das angegebene Ereignis zurück
listenerCount
Fragen Sie die Anzahl der Listener für das angegebene Ereignis des Objekts ab
1Integer WebSocket.listenerCount(String ev);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
Rückgabeergebnisse:
- Integer, gibt die Anzahl der Listener für das angegebene Ereignis zurück
Fragen Sie die Anzahl der Listener für das angegebene Ereignis des Objekts ab
1
2Integer WebSocket.listenerCount(Value o,
String ev);
Aufrufparameter:
- o: Wert, gibt das Objekt der Abfrage an
- ev: String, gibt den Namen des Ereignisses an
Rückgabeergebnisse:
- Integer, gibt die Anzahl der Listener für das angegebene Ereignis zurück
eventNames
Name des Abfrage-Listener-Ereignisses
1Array WebSocket.eventNames();
Rückgabeergebnisse:
- Array, gibt ein Array von Ereignisnamen zurück
emit
Ein Ereignis aktiv auslösen
1
2Boolean WebSocket.emit(String ev,
...args);
Aufrufparameter:
- ev: String, Ereignisname
- args: ..., Ereignisparameter werden an die Ereignisverarbeitungsfunktion übergeben
Rückgabeergebnisse:
- Boolean, gibt den Ereignisauslöserstatus zurück, gibt „true“ zurück, wenn ein Antwortereignis vorliegt, andernfalls wird „false“ zurückgegeben
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 WebSocket.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 WebSocket.toJSON(String key = "");
Aufrufparameter:
- key: Zeichenfolge, nicht verwendet
Rückgabeergebnisse:
- Value, gibt einen Wert zurück, der JSON serialisierbar enthält