WebSocket-Nachricht
Der Trigger "WebSocket" empfängt Nachrichten über TCP von einem von WebSocket unterstützten Client, der den Transformer WebSocketSender in einem FME-Workspace und die folgenden Java- oder HTML5-Webbrowser enthalten kann:
- Internet Explorer 10+
- Firefox 11+
- Chrome 16+
- Safari 6+
- Opera 12.10+
Der Trigger "WebSocket" verfügt über zwei Ausgabe-Ports. Der Success-Port (✔) kann eine Nachricht senden, wenn der Trigger diese erfolgreich empfängt. Der Failure-Port (x) kann eine Nachricht senden, wenn der Trigger nicht mit dem Client kommunizieren kann.
WebSocket-Kommunikationskanäle
Der WebSocket Server befindet sich auf dem FME Flow Core. Standardmäßig verwendet FME Flow die folgenden Kanäle für die WebSocket-Kommunikation:
- Port: 7078
- URI: ws://<hostname>:7078/websocket
Informationen zum Konfigurieren des WebSocket-Servers für die SSL-Kommunikation finden Sie unter Konfigurieren für HTTPS.
Parameters
- Ziel-URL: Dieses Feld wird mit der URL vom FME FlowWebSocket Server vorbelegt (im Lieferumfang Ihrer FME Flow-Installation enthalten). Alternativ können Sie eine Verbindung zu einem anderen WebSocket-Server herstellen.
- Stream-ID: Geben Sie die Stream-ID für den Trigger an. Mit der Stream-ID kann der WebSocket-Server Nachrichten identifizieren und diese mit dem Trigger verbinden.
Attribute der Ausgabe
Siehe auch
Attribut | Beschreibung |
---|---|
time | Ereigniszeit |
source | Ereignistyp |
error.type |
(nur Failure-Port) Fehlertyp:
|
error.message | (nur Failure-Port) Fehlermeldung |
message | (nur Success-Port) Inhalt der Nachricht |
Nachrichtenprotokoll

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.
Betrachten Sie beispielsweise die folgende Nachrichtenserie von einem HTML5-Client an Ihren WebSocket-Server:
{
"ws_op" : "open",
"ws_stream_ids" : "send-stream",
}
{
"ws_op" : "send",
"ws_msg" : "Hello World"
}
{
"ws_op" : "close"
}
Nachdem der WebSocket-Server den Nachrichtenstrom "send-stream" geöffnet hat, wird er an alle in diesem Stream erstellte Trigger gesendet. Der WebSocket-Server schließt dann den Stream.

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>"
},
<...>
{
]
}
Siehe auch