Native Session-Based Chat Protocol
For applications that wish to have bi-directional communication, FME Flow supports a session based “chat” protocol. This protocol leverages FME Flow's native WebSocket support.
Supported clients include, among others, the following HTML5-based web browsers:
- Internet Explorer 10+
- Firefox 11+
- Chrome 16+
- Safari 6+
- Opera 12.10+
The "chat" protocol sends messages to all recipients with the same <sessionkey> value. In the above example, the bi-directional arrows in black indicate session key “black”, and the bi-directional arrows in red indicate session key “red”. Clients A, B and C can communicate with each other because they have the same chat session key. Clients D and E can communicate with each other because they have the same chat session key.
The chat_open message operation establishes a session-based chat session.
{
ws_op : chat_open,
ws_sessionkey : <sessionkey>
}
The chat_send message operation sends messages to all chat clients.
{
ws_op : chat_send,
ws_sessionkey : <sessionkey>,
ws_msg : <msg>
}
The recipients of the chat_send operation receive message with the following schema:
{
ws_msg : <msg>
}
The chat_close operation removes the client from the chat session.
{
ws_op : chat_close,
ws_sessionkey : <sessionkey>
}