FME Flow:2025.1
Message WebSocket
Le déclencheur WebSocket reçoit des messages via TCP à partir d'un client pris en charge par WebSocket, qui peut inclure le transformateur WebSocketConnector dans un FMEworkspace, et les navigateurs Web Java ou HTML5 suivants :
- Microsoft Edge
- Firefox 11+
- Chrome 16+
- Safari 6+
- Opéra 12.10+
Le déclencheur WebSocket possède deux ports de sortie. Le port du succès (✔) peut envoyer un message si le déclencheur le reçoit avec succès. Le port d'échec (x) peut envoyer un message si le déclencheur ne parvient pas à communiquer avec le client.
Canaux de communication WebSocket
LeServeur WebSocket est situé sur leFME Flow Cœur. Par défaut,FME Flow utilise les canaux suivants pour la communication WebSocket :
- Port : 7078
- URI :ws://<nom d'hôte>:7078/websocket
Pour configurer le serveur WebSocket pour la communication SSL, voirConfiguration pour HTTPS.
Paramètres
- URL cible: Ce champ est pré-rempli avec l'URL duFME FlowServeur WebSocket (inclus avec votreFME Flow installation). Alternativement, vous pouvez vous connecter à un autre serveur WebSocket.
- ID de flux: Spécifiez l'ID de flux pour le déclencheur. L'ID de flux permet au serveur WebSocket d'identifier les messages et de les connecter au déclencheur.
Attributs de sortie
Voir aussi
| Attribut | Description |
|---|---|
| temps | Heure de l'événement |
| source | Type d'événement |
| type d'erreur |
(Port d'échec uniquement) Type d'erreur :
|
| message d'erreur | (Port d'échec uniquement) Message d'erreur |
| message | (Port de réussite uniquement) Contenu du message |
Protocole de messagerie
Le serveur WebSocket doit ouvrir les messages avant de les envoyer. Pour ouvrir les messages, le schéma suivant est utilisé :
{
"ws_op" : "ouvert",
"ws_stream_ids" : ["<streamid1>", "<streamid2>", "<streamid3>", ...]
}
Une fois qu'un message est ouvert, une connexion est établie, en utilisant l'ID de flux pour identifier le message. Le serveur WebSocket relaie ensuite les messages en utilisant ce schéma :
{
"ws_op" : "envoyer",
"ws_msg" : "msg"
}
Le serveur WebSocket prend en charge l’envoi de plusieurs messages après l’ouverture d’un flux.
Après l’envoi de messages, il est recommandé de demander au serveur WebSocket de fermer le flux de messages. Cependant, si un message n’est pas explicitement fermé, le serveur WebSocket le ferme automatiquement.
{
"ws_op": "fermer"
}
Attributs :
- ws_op: Définit l'opération WebSocket. Si vous souhaitez que le serveur WebSocket ouvre les messages, spécifiez"ouvrir". Pour envoyer des messages, spécifiez"envoyer". Pour fermer un flux de messages, spécifiez"fermer".
- ws_stream_ids: Identifie un ou plusieurs flux de messages afin que le serveur WebSocket puisse les associer à la source.
Par exemple, considérez la série de messages suivante provenant d’un client HTML5 vers votre serveur WebSocket :
{
"ws_op" : "ouvert",
"ws_stream_ids" : "send-stream",
}
{
"ws_op" : "envoyer",
"ws_msg" : "Bonjour tout le monde"
}
{
"ws_op" : "fermer"
}
Une fois que le serveur WebSocket a ouvert le flux de messages « send-stream », il est envoyé à tous les déclencheurs créés sur ce flux. Le serveur WebSocket ferme ensuite le flux.
Vous pouvez envoyer des messages contenant des informations sur tous les canaux actuellement ouverts sur leFME Flow Serveur WebSocket. Ces informations peuvent être utiles pour administrer et dépanner les communications WebSocket.
Pour obtenir le nombre de canaux WebSocket ouverts, par ID de flux
{
"ws_op" : "admin",
"ws_msg" : "getnumchannels()"
}
Objet de réponse correspondant :
{
"numchannels" : "<nombre_de_canaux>",
"flux":[
{
"flux" : "message_stream_id",
"numchannels" : "<nombre_de_chaînes_ouvertes_sur_ce_flux>"
},
<...>
{
]
}
Pour obtenir des informations de connexion sur chaque canal WebSocket ouvert
{
"ws_op" : "admin",
"ws_msg" : "getchannelinfo()"
}
Objet de réponse correspondant :
{
"numchannels" : "<nombre_de_canaux>",
"canaux" :[
{
"port" : "<numéro_de_port_de_canal>",
"flux" : "message_stream_id",
"hôte" : "adresse_IP_de_l'hôte_du_canal",
"inscriptible" : "<canal_est_inscriptible_vrai_ou_faux>"
},
<...>
{
]
}
Voir aussi