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:

NotizJSON wird für alle Nachrichten 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)>"

},

<...>

{

]

}