ObjectWebSocketMessage
WebSocketMessage
JaWebSocketEen berichttype in een protocol dat inkapseltWebSocketEr kan gebruik worden gemaakt van het gegevensformaat en de verwerkingsmethoden van verschillende berichten in het transmissieprotocolWebSocketDe client en server communiceren.
De constructor van de klasse WebSocketMessage
ondersteunt een gespecificeerde message type parameter type
, die drie optionele waarden heeft:
ws.TEXT
: vertegenwoordigt een tekstbericht, de inhoud is een tekenreeks.ws.BINARY
: vertegenwoordigt een bericht van het binaire type, de inhoud bestaat uit binaire gegevens.
Daarnaast kunt u ook WebSocketMessage.masked
opgeven of er een masker moet worden toegepast door het attribuut te wijzigen, en WebSocketMessage.compress
of compressie vereist is door het attribuut te gebruiken.
De volgende code is een voorbeeld van een websocket-server. Wanneer een client verbinding maakt, stuurt de server het ontvangen bericht terug naar de 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();
In dit programma worden de websocket-ondersteuningsmodule en de ingebouwdehttpmodule en vervolgens gemaakthttpservice object en specificeer het aanvraagpad dat moet worden verwerkt, aanroependws.upgradeDe functie upgradet de aanvraag van het corresponderende pad naar een websocket-verbinding. Nadat er een websocket-verbinding is gemaakt, maakt de server automatisch eenws.SocketObject, en biedt onopen, onmessage, onclose en andere API's die kunnen worden afgehandeld wanneer een client verbinding maakt, een bericht ontvangt en gebeurtenissen sluit. Wanneer een bericht wordt ontvangen, bepaalt de server het type bericht en als het een teksttype is, wordt het ontvangen bericht teruggekaatst. Het bovenstaande is een eenvoudige websocket-serververwerkingsstroom, die kan worden aangepast aan de werkelijke behoeften.
erfenis relatie
Constructeur
WebSocketMessage
Pakketafhandeling berichtobjectconstructor
1
2
3
4new WebSocketMessage(Integer type = ws.BINARY,
Boolean masked = true,
Boolean compress = false,
Integer maxSize = 67108864);
Oproepparameters:
- type: geheel getal, websocket-berichttype, standaard is websocket.BINARY
- masked: Booleaans, websocket-berichtmasker, standaard is waar
- compress: Boolean, geeft aan of het bericht gecomprimeerd is, de standaardwaarde is false
- maxSize: Geheel getal, maximale pakketgrootte in MB, standaard is 67108864 (64M)
constante
TEXT
Geef berichttype 1 op, dat een teksttype vertegenwoordigt
1const WebSocketMessage.TEXT = 1;
BINARY
Geef berichttype 2 op, dat een binair type vertegenwoordigt
1const WebSocketMessage.BINARY = 2;
eigenschappen van leden
masked
Boolean, query en lees websocketmaskervlag, standaard is waar
1Boolean WebSocketMessage.masked;
compress
Booleaanse, query- en leeswebsocket-compressiestatus, standaard is false
1Boolean WebSocketMessage.compress;
maxSize
Geheel getal, vraag op en stel de maximale pakketgrootte in bytes in, de standaardwaarde is 67108864 (64M)
1Integer WebSocketMessage.maxSize;
value
String, de basisinhoud van het bericht
1String WebSocketMessage.value;
params
NArray, de basisparameters van het bericht
1readonly NArray WebSocketMessage.params;
type
Geheel getal, berichttype
1Integer WebSocketMessage.type;
data
Waarde, zoek naar de gegevens van het bericht. Dit attribuut retourneert verschillende gegevens, afhankelijk van het inhoudstype. Als het tekst is, wordt de tekst geretourneerd.jsonwanneer terugjson, anders retourneert het binair
1readonly Value WebSocketMessage.data;
body
SeekableStream, een stroomobject dat het gegevensgedeelte van het bericht bevat
1SeekableStream WebSocketMessage.body;
length
Lang: de lengte van het berichtgegevensgedeelte
1readonly Long WebSocketMessage.length;
stream
Stream, het streamobject bij het opvragen van het bericht readFrom
1readonly Stream WebSocketMessage.stream;
lastError
Tekenreeks, query en stel de laatste fout van de berichtverwerking in
1String WebSocketMessage.lastError;
lid functie
read
Gegevens van een opgegeven grootte uit de stream lezen. Deze methode is een alias van de overeenkomstige body-methode.
1Buffer WebSocketMessage.read(Integer bytes = -1) async;
Oproepparameters:
- bytes: Geheel getal, specificeert de hoeveelheid gegevens die moeten worden gelezen. De standaardinstelling is het lezen van gegevensblokken van willekeurige grootte. De grootte van de gelezen gegevens is afhankelijk van het apparaat.
Resultaten retourneren:
- Buffer, retourneert de gegevens die uit de stream zijn gelezen. Als er geen gegevens zijn om te lezen of als de verbinding wordt onderbroken, wordt null geretourneerd.
readAll
Lees alle resterende gegevens uit de stream. Deze methode is een alias van de overeenkomstige methode van body.
1Buffer WebSocketMessage.readAll() async;
Resultaten retourneren:
- Buffer, retourneert de gegevens die uit de stream zijn gelezen. Als er geen gegevens zijn om te lezen of als de verbinding wordt onderbroken, wordt null geretourneerd.
write
Schrijf de gegeven gegevens. Deze methode is een alias van de overeenkomstige methode in body.
1WebSocketMessage.write(Buffer data) async;
Oproepparameters:
- data:Buffer, gegeven de te schrijven gegevens
json
Schrijft de gegeven gegevens in JSON-codering
1Value WebSocketMessage.json(Value data);
Oproepparameters:
- data: Waarde, gegeven de te schrijven gegevens
Resultaten retourneren:
- Value, retourneert deze methode geen gegevens
Parseer de gegevens in het bericht als JSON-codering
1Value WebSocketMessage.json();
Resultaten retourneren:
- Value, retourneert het geparseerde resultaat
pack
doormsgpackCodering schrijft de gegeven gegevens
1Value WebSocketMessage.pack(Value data);
Oproepparameters:
- data: Waarde, gegeven de te schrijven gegevens
Resultaten retourneren:
- Value, retourneert deze methode geen gegevens
doormsgpackCoderen en parseren van de gegevens in het bericht
1Value WebSocketMessage.pack();
Resultaten retourneren:
- Value, retourneert het geparseerde resultaat
end
Stel het einde van de huidige berichtverwerking in,ChainDe verwerker gaat niet verder met vervolgtransacties
1WebSocketMessage.end();
isEnded
Vraag op of het huidige bericht is beëindigd
1Boolean WebSocketMessage.isEnded();
Resultaten retourneren:
- Boolean, retourneert waar als u klaar bent
clear
Duidelijke berichtinhoud
1WebSocketMessage.clear();
sendTo
Stuurt een opgemaakt bericht naar het opgegeven streamobject
1WebSocketMessage.sendTo(Stream stm) async;
Oproepparameters:
- stm:Stream, specificeert het streamobject dat het opgemaakte bericht ontvangt
readFrom
Leest het opgemaakte bericht van het gegeven cachestreamobject en ontleedt het ingevulde object
1WebSocketMessage.readFrom(Stream stm) async;
Oproepparameters:
- stm:Stream, specificeert het streamobject voor het lezen van opgemaakte berichten
toString
Retourneert de tekenreeksweergave van het object. Over het algemeen wordt '[Native Object]' geretourneerd. Het object kan opnieuw worden geïmplementeerd op basis van zijn eigen kenmerken.
1String WebSocketMessage.toString();
Resultaten retourneren:
- String, retourneert de tekenreeksrepresentatie van het object
toJSON
Retourneert een weergave in JSON-indeling van het object, waarbij doorgaans een verzameling leesbare eigenschappen wordt geretourneerd die door het object zijn gedefinieerd.
1Value WebSocketMessage.toJSON(String key = "");
Oproepparameters:
- key: Tekenreeks, niet gebruikt
Resultaten retourneren:
- Value, retourneert een waarde die JSON-serialiseerbaar bevat