WebSocket Server-Nachrichtenprotokoll
Öffnen, Senden und Schließen von Nachrichten
Der WebSocket-Server muss Nachrichten vor dem Senden öffnen. Um Nachrichten zu öffnen, wird das folgende Schema verwendet:
{
"ws_op" : "open",
"ws_stream_ids" : ["<streamid1>", "<streamid2>", "<streamid3>", ...]
}
Sobald eine Nachricht geöffnet ist, wird eine Verbindung hergestellt, die die Stream ID zum Identifizieren der Nachricht verwendet. Der WebSocket-Server leitet Nachrichten unter Verwendung dieses Schemas weiter:
{
"ws_op" : "send",
"ws_msg" : "msg"
}
Der WebSocket-Server unterstützt das Senden mehrerer Nachrichten nach dem Öffnen eines Streams.
Nach dem Senden von Nachrichten empfiehlt es sich, dass der WebSocket-Server den Nachrichten-Stream schließt. Wenn eine Nachricht jedoch nicht explizit geschlossen wird, schließt der WebSocket-Server sie automatisch.
{
"ws_op": "close"
}
Attribute:
- ws_op: Definiert die WebSocket-Operation. Wenn der WebSocket-Server Nachrichten öffnen soll, geben Sie "open" an. Um Nachrichten zu senden, geben Sie "send" an. Um einen Nachrichten-Stream zu schließen, geben Sie "close" an.
- ws_stream_ids: Identifiziert einen oder mehrere Nachrichten-Sreams, damit der WebSocket-Server sie der Quelle zuordnen kann.
Abrufen von Informationen über Open WebSocket-Kanäle
Sie können Nachrichten mit Informationen zu allen derzeit auf dem FME Flow WebSocket-Server geöffneten Kanälen senden. Diese Informationen können zur Verwaltung und Fehlerbehebung von WebSocket-Kommunikationen hilfreich sein.
Um die Anzahl der geöffneten WebSocket-Kanäle nach Stream ID zu ermitteln
{
"ws_op" : "admin",
"ws_msg" : "getnumchannels()"
}
Entsprechendes Antwortobjekt:
{
"numchannels" : "<number_of_channels>",
"streams":[
{
"stream" : "message_stream_id",
"numchannels" : "<number_of_channels_open_on_this_stream>"
},
<...>
{
]
}
Um Verbindungsinformationen zu jedem geöffneten WebSocket-Kanal zu erhalten
{
"ws_op" : "admin",
"ws_msg" : "getchannelinfo()"
}
Entsprechendes Antwortobjekt:
{
"numchannels" : "<number_of_channels>",
"channels" :[
{
"port" : "<channel_port_number>",
"stream" : "message_stream_id",
"host" : "channel_host_ip_address",
"writable" : "<channel_is_writable_true_or_false>"
},
<...>
{
]
}