WebSocket Publisher.
WebSocket Publisher从WebSocket-Sharted客户端通过TCP接收消息,并将其发布到FME服务器主题。支持的客户端可以包含WebSockEtsender变形金刚,以及以下Java或HTML5 Web浏览器:
- Internet Explorer 10+
- Firefox 11+
- 铬16+
- Safari 6+
- 歌剧12.10+
WebSocket通信频道
WebSocket服务器位于FME服务器核心上。默认情况下,FME服务器使用以下通道进行WebSocket通信:
- 港口:7078
- Uri:WS:// <主机名>:7078 / Websocket
要为SSL通信配置WebSocket服务器,请参阅配置HTTPS.。
配置发布者
- 在FME服务器中Web用户界面, 选择通知>出版物,然后点击新。
- 提供出版物的名称
- 在“协议”下拉菜单中,选择“Websocket”。
指定话题您希望发布到使用下拉选择器。要创建主题并立即使用它,请单击+。
- 目标URL:使用FME服务器核心的WebSocket服务器的URL预先填充此字段(包含在FME服务器安装中)。但是,您可以选择连接到其他WebSocket服务器。
- Stream ID:指定发布的流ID。流ID允许WebSocket服务器识别消息并将其连接到请求应用程序。在这种情况下,请求应用程序是通知服务发布者。
- 单击确定。
消息传递协议
WebSocket服务器必须在发送之前打开邮件。要打开消息,使用以下模式:
注意:JSON用于所有消息传递
{
“ws_op”:“打开”,
“ws_stream_ids”:[“
}
打开消息后,使用流ID建立连接以识别消息。然后,WebSocket服务器使用此架构继承消息:
{
“ws_op”:“发送”,
“ws_msg”:“msg”
}
WebSocket服务器支持在打开流后发送多个消息。
发送消息后,请求WebSocket服务器关闭消息流是一个很好的做法。但是,如果未明确关闭消息,WebSocket服务器会自动关闭。
{
“ws_op”:“关闭”
}
关键词:
- WS_OP.:定义WebSocket操作。如果您希望WebSocket服务器打开邮件,请指定“打开”。要发送消息,请指定“发送”。要关闭消息流,请指定'关'。
- ws_stream_ids.:识别一个或多个消息流,以便WebSocket服务器可以将它们与正确的请求应用程序相关联,例如FME通知服务或WebSocket Web服务器。
例如,将以下一系列消息从HTML5客户端视为WebSocket服务器:
{
“ws_op”:“打开”,
“ws_stream_ids”:“发送流”,
}
{
“ws_op”:“发送”,
“ws_msg”:“你好世界”
}
{
“ws_op”:“关闭”
}
WebSocket服务器打开“发送流”消息流后,它将发送到该流上创建的任何发布商。然后将消息“Hello World”交付给为这些发布商定义的所有主题。然后WebSocket服务器关闭流。
您可以发送包含有关当前在FME服务器WebSocket服务器上打开的所有通道的信息的消息。此信息可用于管理和故障排除WebSocket通信。
通过Stream ID获取打开的WebSocket通道数
{
“ws_op”:“管理员”,
“ws_msg”:“getnumchannels()”
}
相应的响应对象:
{
“NumChannels”:“<number_of_channels.>“,
“溪流”:[
{
“流”:“message_stream_id.“,
“NumChannels”:“<number_of_channels_open_on_this_stream.>“
},
<......>
{
]
}
获取有关每个打开WebSocket频道的连接信息
{
“ws_op”:“管理员”,
“ws_msg”:“getchannelinfo()”
}
相应的响应对象:
{
“NumChannels”:“<number_of_channels.>“,
“频道”:[
{
“港口”:“<channel_port_number.>“,
“流”:“message_stream_id.“,
“主持人”:“channel_host_ip_address.“,
“可写”:“<channel_is_writy_true_or_false.>“
},
<......>
{
]
}
也可以看看