ACADEMIC RESEARCH 学术研究
一、前言
Socket技术目前主要用在即时通讯服务中,在本系统我们将智能终端和客户端连接,使得客户端可以向智能终端发送指令信息,智能终端经过对指令解析后做出相应的回馈,这样就实现了一个简单的物联网系统。当终端设备增多时,可以在数据库中对终端进行区分和管理,使得整个系统的设备可以灵活运行,GatewayWorker框架已经完美支持对数据库的操作,以及可以快捷的与其他PHP框架进行对接。
本文简单的介绍客户端和智能硬件终端的一对一通信,并对方案进行了部分实现。如若终端设备较多,可自行对数据库进行扩展。
二、设计思路
本物联网系统主要包括三部分组成: 移动终端,Socket 服务器,智能硬件终端。
移动终端通过设置服务器信息,连接到Socket服务器,移动终端将用户控制指令加密后,通过相关的传输协议将控制指令发送至Socket服务器。Socket服务器再将指令解密,同时验证发送该指令的移动终端设备是否在本物联网系统中授权。如果为授权设备,则将指令发送至智能硬件终端,否则,提示错误。
三、实现方案
本简易物联网系统目前只包括控制指令的发送和接收,暂不包括接入终端的授权部分。
GatewayWorker是基于开源高性能异步PHP Socket框架Workerman开发的一套TCP长连接应用框架,该框架目前已经实现了单发、发等功能,我们正是利用这几个功能来开发本物联网系统。首先我们从(www.workerman/ download)下载GatewatWorker。/Application/YourApp/Events.php 文件是我们需要修改的文件,如果没有其他需求,默认我们只修改此文件即可。目前我们主要了解以下几个核心方法:- onConnect(string $client_id) 客户端连接服务器成功后的调用方法
- setSession(string $client_id, array $session) 为用户设置session
- getSession(string $client_id)获取为用户设置的session - onMessage(string $client_id,mixed $recv_data) 用户发送数据
- sendToAll(string $send_data)向所有在线用户发送信息
当终端请求登录该系统时,我们提交终端的类型,例如client代表客户端,hardware 代表智能终端设备。并将终端类型储存入session,以便于禁止智能硬件终端发送指令。(注:client_id 为服务器自动生成,我们可以直接使用生成的client_id)。由于onConnect(string $client_id)方法由系统调用,
且无法传入更多参数,所以我们从onMessage($client_ id)中判断不同的数据类型来做相应的处理。目前该系统分为两种数据类型:登录(login)和发送指令(send)。终端在登录时将自己的设备类型封装成JSON格式发送到系统,系统根据获取到的信息进行存储。当终端发送指令信息时,首先获取到该设备的类型,如果为客户端则允许发送指令,否则终止。最后系统将指令信息封装为JSON格式发送给终端,终端接收到指令后,首先根据自身终端类型判断是否需要执行该指令,然后做出相应操作。目前GatewayWoker已经完美支持大部分PHP框架,例如我们可以使用ThinkPHP框架搭建一个用户管理系统来管理接入该互联网系统的用户和智能终端设备。当用户发送命令信息时,先在用户管理系统判断已经被授权。只有在被授权的情况下才允许用户发送指令给相应设备。另外也可以管理多个设备与用户之间的关系,比如部分用户仅可以对当前物联网系统下的某一个设备发送指令。
四、结语
本文利用GatewayWorker框架搭建了一个简易的物联网系统,通过客户端向该系统发送指令来实现对智能终端硬件的控制。我们可以将客户端以网页、APP的形式向用户提供服务,方便对智能设备进行控制,达到一个理想的物联网环境。H (基金项目:由北京信息科技大学2018年人才培养质量提高经费(5111823402)支持)
(作者单位:北京信息科技大学)
基于Gateway Wor ker框架的简易物联网系统
徐正科 陈 杰 佟 安
◆
php项目搭建摘要:现如今智能家居已经走进千家万户,加上最近各类智能音响产品的流行,将智能家居推向了一
个新的高度。论文介绍了利用高性能异步PHP Socket框架GatewatWorker搭建一套简易的物联网系统。通过该
方案,可以实现利用客户端对智能硬件设备进行控制,达到远程操作的目的。
关键词:物联网;GategoryWorker;Socket
信息系统工程 │ 2019.3.20159
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论