WebSocket服务器协议(开发版)
<p>[toc]</p>
<h5>简要描述</h5>
<p>WebSocket服务器主要用于PC端与小程序端数据交互,实现一对一的实时通讯功能。</p>
<h5>基本功能介绍</h5>
<ul>
<li>挂载:Pc端主动连接Websocket服务器,并保持心跳包(超时的连接会被强制下线)</li>
<li>请求访问客户端:小程序端发起访问请求(通过扫小程序二维码,同时带上机器HID)询问服务器该HID对象是否在线,服务器端返回连接成功或失败信息</li>
<li>消息转发
<ul>
<li>小程序给Pc端发送消息:小程序发送消息必须指定机器的HID,并将自己的OpenId一起发送出去。当消息通过服务器成功转达Pc端时,Pc端需要返还成功接收的数据帧,并通过服务器转发给小程序端</li>
<li>Pc端给小程序发送消息:Pc端指定OpenId,并将消息发送给服务器。当消息通过服务器成功转达指定OpenId的小程序端,小程序端需要返还成功接收数据帧,并通过服务器端发送给Pc端</li>
</ul></li>
<li>日志记录:记录上线时间、下线时间、当前登录状态、心跳数据,通讯数据等</li>
</ul>
<h5>服务器地址</h5>
<ul>
<li><code>ws://192.168.13.58:58566</code></li>
</ul>
<h5>连接方式</h5>
<ul>
<li>WebSocket</li>
</ul>
<h5>通讯内容介绍</h5>
<h6>PC端请求连接服务器</h6>
<p>PC端将自己的HID作为参数传入,发送请求如下:</p>
<pre><code>{
"sourceId":"OpenId/HID",
"targetId":NULL,//空
"message":{
"type":"PcConnecting",
"content":"PC请求连接服务器"
}
}</code></pre>
<p>服务器返回数据如下</p>
<pre><code>{
"code":"001",
"message":"PC端连接服务器成功"
}</code></pre>
<h6>小程序请求连接服务器</h6>
<p>小程序将自己的openId与连接的Pc端HID作为参数传入,发送连接请求如下:</p>
<pre><code>{
"sourceId":"OpenId/HID",
"targetId":"OpenId/HID",
"message":{
"type":"MiniAppConnecting",
"content":"小程序请求连接服务器"
}
}</code></pre>
<p>服务器返回数据如下</p>
<pre><code>{
"code":"002",
"message":"小程序端连接指定PC端成功"
}</code></pre>
<h6>心跳帧</h6>
<p>心跳帧格式如下为beats加上Pc端的HID或者小程序端的OpenId,每隔10s发送一次,超过10s未发送将会被强制下线</p>
<pre><code>{
"sourceId":"OpenId/HID",
"targetId":NULL,
"message":{
"type":"Beats",
"content":心跳
}
}</code></pre>
<h6>数据接收完成帧</h6>
<p>数据接收完成时发送如下内容:</p>
<pre><code>{
"sourceId":"OpenId/HID",
"targetId":"OpenId/HID",
"message":{
"type":"Received",
"content":数据接收完成
}
}</code></pre>
<h6>消息帧</h6>
<p>发送消息时的数据定义如下格式</p>
<pre><code>{
"sourceId":"OpenId/HID",
"targetId":"OpenId/HID",
"message":{
"type":"消息类型",
"content":"消息内容"
}
}</code></pre>
<h5>服务器返回码</h5>
<table>
<thead>
<tr>
<th>信息码</th>
<th>功能介绍</th>
</tr>
</thead>
<tbody>
<tr>
<td>001</td>
<td>PC端连接服务器成功</td>
</tr>
<tr>
<td>002</td>
<td>小程序端连接指定PC端成功</td>
</tr>
<tr>
<td>101</td>
<td>指定的Id不在线</td>
</tr>
<tr>
<td>102</td>
<td></td>
</tr>
<tr>
<td>103</td>
<td>服务器异常,建立连接失败</td>
</tr>
<tr>
<td>104</td>
<td>传参错误</td>
</tr>
<tr>
<td>105</td>
<td>HID或OpenId已存在</td>
</tr>
<tr>
<td>106</td>
<td>HID或OpenId错误</td>
</tr>
<tr>
<td>107</td>
<td>未知的消息类型</td>
</tr>
<tr>
<td>108</td>
<td>HID或OpenId不存在</td>
</tr>
</tbody>
</table>
<h5>消息类型定义</h5>
<table>
<thead>
<tr>
<th>消息类型</th>
<th>功能介绍</th>
</tr>
</thead>
<tbody>
<tr>
<td>PcConnecting</td>
<td>PC请求连接服务器</td>
</tr>
<tr>
<td>MiniAppConnecting</td>
<td>小程序请求连接服务器</td>
</tr>
<tr>
<td>Received</td>
<td>数据接收完成</td>
</tr>
<tr>
<td>Beats</td>
<td>心跳</td>
</tr>
<tr>
<td>Message</td>
<td>数据帧</td>
</tr>
</tbody>
</table>