2.服务器websocket消息转发
<p><strong>请求URL:</strong> </p>
<ul>
<li><code>http://adm.hbfyun.com/message/sendmessage 如果是内网 可用10.27.204.40 内网地址</code></li>
</ul>
<p><strong>参数:</strong> </p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">data</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>需要发送的数据,见下面使用须知</td>
</tr>
<tr>
<td style="text-align: left;">sign</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>签名 md5("dlc")<em> </em></td>
</tr>
</tbody>
</table>
<p><strong>使用须知(重要)</strong></p>
<pre><code>1、协议简介:websocket是基于tcp的应用层协议,握手协议类似于http协议,当服务器和客户端握手成功过后,一个websocket连接就建立成功。
2、数据通信:数据通信使用websocket帧,websocket帧有自己的格式,如果有兴趣,可以百度“websocket帧格式”。
3、接口字段data说明:data字段是一个格式如{ "data": "这是websocket测试数据", "udid": "caxieji_123123"}的字符串,其中data字段内的data是需要转发的数据,里面可以包含任何ascii字符(如果是二进制数据,可以使用base64编码后使用,二进制数据的应用场景可用于文件或者图片的发送)。data字段内的udid是终端唯一标识符,也就是该udid能唯一标识某一个websocket连接,这个udid是从何而来,看下面的介绍。
4、前端连接:机器云websocket连接地址(ws使用ws://120.77.72.190:9999 ,wss需要服务器配置证书,wss域名,然后在nginx(apache)做数据转发,数据需要转发到120.77.72.190:9999。)。连接过后需要做定时器保持心跳(服务器判断60秒如过不发送心跳包即判定为断线,会强制断掉该websocket连接)
5、心跳格式:”固定前缀+udid“格式,固定前缀为"connectinfo_"。udid是后台在调用数据发送接口的udid字段,一般建议使用项目名加上用户id标识该websocket链接。
6、使用示例:例如websocket客户端连接到ws://120.77.72.190:9999后,连接成功后,需要向服务器发送"connectinfo_webtest001",如果是测试客户端,每隔30秒左右手动发送一次,如果是代码实现,则使用定时器每隔30向通过该websocket向服务器发送一次心跳数据。后台调用该接口则data字段应该如下构件:{ "data": "这是websocket测试数据", "udid": "connectinfo_webtest001"}。</code></pre>
<p><strong>返回示例</strong></p>
<pre><code>{
"code": "1",//状态:1在线;0不在线
"msg": "发送成功",
"data":{ "data": "这是websocket测试数据", "udid": "caxieji_123123"} //会把需要发送的消息返还,不保证消息可达,请求即可发送成功
}</code></pre>