FME Flow:2025,0
WebSocket-Nachricht
Der WebSocket-Trigger empfängt Nachrichten über TCP von einem WebSocket-unterstützten Client, der den WebSocketConnector-Transformator in einem FME enthalten kannworkspaceund die folgenden Java- oder HTML5-Webbrowser:
- Microsoft Edge
- Firefox 11+
- Chrome 16+
- Safari 6+
- Opera 12.10+
Der WebSocket-Trigger hat zwei Ausgabeports. Der Erfolgsport (✔) kann eine Nachricht senden, wenn der Trigger sie erfolgreich empfängt. Der Fehlerport (X) kann eine Nachricht senden, wenn die Kommunikation des Triggers mit dem Client fehlschlägt.
WebSocket-Kommunikationskanäle
DerWebSocket-Server befindet sich auf derFME Flow Kern. StandardmäßigFME Flow verwendet 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 unterKonfigurieren für HTTPS.
Parameter
- Ziel-URL: Dieses Feld ist bereits mit der URL desFME FlowWebSocket-Server (im Lieferumfang IhresFME Flow Installation). Alternativ können Sie eine Verbindung zu einem anderen WebSocket-Server herstellen.
- Stream-ID: Geben Sie die Stream-ID für den Auslöser an. Die Stream-ID ermöglicht es dem WebSocket-Server, Nachrichten zu identifizieren und sie mit dem Trigger zu verknüpfen.
Ausgabeattribute
Siehe auch
Attribut | Beschreibung |
---|---|
Zeit | Ereigniszeit |
Quelle | Ereignistyp |
Fehlertyp |
(Nur Fehlerport) Fehlertyp:
|
Fehlermeldung | (Nur Fehlerport) Fehlermeldung |
Nachricht | (Nur Erfolgsport) Nachrichteninhalt |
Messaging-Protokoll

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.
Betrachten Sie beispielsweise die folgende Nachrichtenserie von einem HTML5-Client an Ihren WebSocket-Server:
{
"ws_op" : "öffnen",
"ws_stream_ids": "Sende-Stream",
}
{
"ws_op" : "senden",
"ws_msg": "Hallo Welt"
}
{
"ws_op": "schließen"
}
Nachdem der WebSocket-Server den Nachrichtenstream „send-stream“ geöffnet hat, wird er an alle in diesem Stream erstellten Trigger gesendet. Anschließend schließt der WebSocket-Server den Stream.

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