你在这里: 参考手册 > FME服务器Web服务 > 通知服务 > 订户 > WebSocket服务器消息传递协议

WebSocket服务器消息传递协议

打开、发送和关闭消息

WebSocket服务器必须在发送邮件之前打开邮件。若要打开邮件,请使用以下架构:

注:JSON用于所有消息传递

{

“ws_op”:“打开”,

“ws_stream_id”:[“”、“”、“”、…]

}

打开消息后,将使用流ID来标识消息,从而建立连接。然后,WebSocket服务器使用此模式中继消息:

{

“ws_op”:“发送”,

“ws_msg”:“msg”

}

WebSocket服务器支持在流打开后发送多条消息。

发送消息后,最好请求WebSocket服务器关闭消息流。但是,如果消息未显式关闭,WebSocket服务器会自动关闭消息流。

{

“ws_op”:“关闭”

}

关键词:

  • W_op:定义WebSocket操作。如果希望WebSocket服务器打开邮件,请指定“打开”。若要发送邮件,请指定“发送”。若要关闭消息流,请指定“结束”.
  • ws\u流\u ID:标识一个或多个消息流,以便WebSocket服务器可以将其与正确的请求应用程序(如FME通知服务或WebSocket web服务器)关联。

获取有关打开的WebSocket频道的信息

您可以发送包含当前在FME Server WebSocket服务器上打开的所有频道信息的消息。此信息对于管理和排除WebSocket通信故障非常有用。

按流ID获取打开的WebSocket通道数

{

“ws_op”:“管理员”,

“ws_msg”:“GetNumChannel()”

}

对应的响应对象:

{

“numchannels”:<信道数>",

“溪流”:[

{

“流”:消息流id",

“numchannels”:<此\u流上的\u通道数\u打开\u>"

},

<...>

{

]

}

获取每个打开的WebSocket通道的连接信息

{

“ws_op”:“管理员”,

“ws_msg”:“getchannelinfo()”

}

对应的响应对象:

{

“numchannels”:<信道数>",

“频道”:[

{

“端口”:”<通道端口号>",

“流”:消息流id",

“主机”:通道\主机\ ip\地址",

“可写”:<通道\u可写\u为真\u或\u为假>"

},

<...>

{

]

}