【⼤树云微课堂】-BTC 设备服务器的系统搭建

1. 什么是设备服务器?
________________________________________
设备服务器 是作为上层 应⽤层服务器 和 设备 通讯的 中间层。实现对 设备的控制 和 应用层消息的处理。
因为该服务器只与设备通信,不直接与⽤户客户端通信,所以叫做 设备服务器。

2. 开发环境介绍
________________________________________
开发语⾔:Node.js
通信协议:HTTP、Socket

3. Node.js 实现 Socket 通信
________________________________________
Socket 主要作⽤是实现客户端与服务端的实时通信保持通话,它不像 ajax 请求,每次对话完成后都会把连接断开。
Socket 通信在 Node.js 中实现其实很简单,没有想象中复杂,基本上只要懂得监听(.on)和推送(.emit)消息,即能实现 Socket 通信。

3.1 概念理解简介
● 服务端:绑定连接事件,在连接事件中管理客户端进程对象(1,把添加到数组中 2,处理理客户端发来的数据)-->开启端⼝监听请求 。
● 客户端:创建连接服务器用的套接字 --> 连接服务器。
● 综上所述,其实 socket ⼯作原理理和 http 类似,只是不规定断开连接的时间。
可以把 http 理理解成⼀个⼈办⼀件事情就跑⼀次连接流程。socket 理解成只跑⼀次连接流程,只到把所有的事情都做完了才回去。
注意:socket 建⽴的连接是⻓久连接。⽽应⽤层的 http 协议是 3 次握⼿协议,是短连接。

3.2 Socket 服务端
“⼤树云—BTC” 设备服务器的服务端与客户端都创建了对应的模型,较复杂,这里只介绍原理,具体实现不做赘述。
在服务端使⽤用 Socket,需先引⼊ socket.io 模块,该模块主要是封装了 Node.js 中内置的 net 模块。该模块详细⽂档可参考 http://nodejs.cn/api/net.html



然⽽,⼀个简单的服务端实例代码如下:



上例中实现了 4 步:

1. 建⽴连接。
2. 添加断开连接监听。
3. 建⽴ clientmessage 监听,当客户端发来该名称的事件时,服务器向除⾃己外其他的⽤户⼴播事件名称为 message 的消息。
4. 向客户端推送事件名称为 message 的消息。

在 “⼤树云—BTC” 的所有接⼝中,都运⽤了如上的事件监听与消息发布的机制,从⽽实现设备与服务器的实时通信,除此之外,服务端主要应⽤到的事件有 2 个。



3.3 Socket 客户端
每一个 Socket 客户端模型实例化之后⼀一对应每⼀台设备。
⼀个简单的客户端模型如下:



客户端主要应用到的事件监听有 5 个。



3.4 ⼩结
________________________________________
以上是设备服务器客户端与服务端的介绍,⾄此,⼀个相对简单的设备服务器的搭建就完成了,步骤可以总结为:

客户端步骤:
1. 创建套接字
2. 向服务器发送连接请求(connect)
3. 通信
4. 关闭套接字

服务端步骤:
1. 创建⽤于监听的套接字(socket)
2. 将套接字绑定到本地地址和端口上(bind)
3. 设置监听
4. 等待客户请求
5. 通信
6. 关闭套接字

更多资讯,请关注⼤树云系列公众号:

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★博文作者未开放评论功能