FME Flow:2025,0
WebSocket-Server-Messaging-Protokoll
Öffnen, Senden und Schließen von Nachrichten
Der WebSocket-Server muss Nachrichten vor dem Senden öffnen. Zum Öffnen von Nachrichten wird folgendes Schema verwendet:
{
"ws_op" : "öffnen",
"ws_stream_ids": ["<streamid1>", "<streamid2>", "<streamid3>", ...]
}
Sobald eine Nachricht geöffnet wird, wird eine Verbindung hergestellt, wobei die Stream-ID zur Identifizierung der Nachricht verwendet wird. Der WebSocket-Server leitet dann Nachrichten mithilfe dieses Schemas weiter:
{
"ws_op" : "senden",
"ws_msg": "Nachricht"
}
Der WebSocket-Server unterstützt das Senden mehrerer Nachrichten, nachdem ein Stream geöffnet wurde.
Nach dem Senden von Nachrichten empfiehlt es sich, den WebSocket-Server aufzufordern, den Nachrichtenstrom zu schließen. Wenn eine Nachricht jedoch nicht explizit geschlossen wird, schließt der WebSocket-Server sie automatisch.
{
"ws_op": "schließen"
}
Merkmale:
- ws_op: Definiert den WebSocket-Vorgang. Wenn Sie möchten, dass der WebSocket-Server Nachrichten öffnet, geben Sie"offen". Um Nachrichten zu senden, geben Sie an"schicken". Um einen Nachrichtenstrom zu schließen, geben Sie an"schließen".
- ws_stream_ids: Identifiziert einen oder mehrere Nachrichtenströme, damit der WebSocket-Server sie der Quelle zuordnen kann.
Informationen zu offenen WebSocket-Kanälen abrufen
Sie können Nachrichten mit Informationen zu allen Kanälen senden, die derzeit auf demFME Flow WebSocket-Server. Diese Informationen können für die Verwaltung und Fehlerbehebung der WebSocket-Kommunikation hilfreich sein.
So ermitteln Sie die Anzahl der offenen WebSocket-Kanäle nach Stream-ID
{
"ws_op": "Administrator",
"ws_msg": "getnumchannels()"
}
Entsprechendes Antwortobjekt:
{
"AnzahlKanäle" : "<Anzahl_der_Kanäle>",
"Streams":[
{
"Stream" : "Nachrichtenstream-ID",
"AnzahlKanäle" : "<Anzahl_der_offenen_Kanäle_in_diesem_Stream>"
},
<...>
{
]
}
So erhalten Sie Verbindungsinformationen zu jedem offenen WebSocket-Kanal
{
"ws_op": "Administrator",
"ws_msg": "getchannelinfo()"
}
Entsprechendes Antwortobjekt:
{
"AnzahlKanäle" : "<Anzahl_der_Kanäle>",
"Kanäle" :[
{
"Hafen" : "<Kanal-Portnummer>",
"Stream" : "Nachrichtenstream-ID",
"Gastgeber" : "Kanal-Host-IP-Adresse",
"schreibbar" : "<Kanal ist beschreibbar (true oder false)>"
},
<...>
{
]
}