原创文章,转载请注明:转载自技术哥
微信订阅号:技术哥
上次技术哥教大家如何用9.9元搭建一个ECS服务器并且建立站点,让全世界都可以访问。
这次就让技术哥带领你们接着来学习如何实现物联网后台的操作吧(轻量应用服务器)
物联网的实质是,万物互联。物体之间可以通过互联网连接到一起,而怎么连接到一起?其中有一步很关键的就是在服务器架设物联网后台。目前物联网后台的实现技术方案有以下几种:
本篇将介绍如何使用GatewayWorker框架在自己的个人站点上制作一个精简的聊天室示例。
服务器:Linux(centos 6.8/6.9)
数据库:MySQL(5.5)
服务端:PHP 5.6(Thinkphp 5)
协议: Websocket 1.1
框架: GatewayWorker
1.下载文件
进入GatewayWorker官网,点击GatewayWorker 2.0手册,在序言中点击下载demo,将下载好的GatewayWorker文件添加为压缩包并保存至桌面,查看开发必读。打开已搭建好的个人站点,搜索云翼计划,点击控制台,进入轻量应用服务器。
2.远程控制
1)轻量服务器点击阿里云控制台右上角的远程连接;
2)云服务器ECS请用Putty或X-shell进行远程连接,输入个人IP地址即可连接;
3)也可以使用Windows的远程桌面连接:开始菜单 —> 所有应用 —> Windows附件 —> 远程桌面连接 —> 输入你的IP地址 —> 连接(Win10家庭版无自带远程控制功能)
3.打开宝塔输入个人IP地址:8888 即可进入宝塔控制面板。(例:127.0.0.1:8888)
PS:
1)轻量服务器点击重置系统,在应用镜像中选择宝塔确认更换。打开宝塔控制面板
2)云服务器ECS CentOS宝塔面板安装配置见服务器|9.9元搭建服务器
4.文件上传与权限修改
1)在宝塔界面点击左侧导航栏中的 文件 —> 上传 —> 添加文件,选择GatewayWorker.zip,开始上传。上传之后解压文件夹。(推荐解压到新的文件夹)
2)修改文件权限:可在命令行中输入ch mod 777 GatewayWorker.zip
或在宝塔Linux面板中更改(文件 —> 权限 —> 输入777 —> 确定),修改成功后发现在命令行界面中该文件名变绿。
5.试运行
将所需文件均修改至可编辑状态后,命令行运行php start.php start
启动GatewayWorker(如遇 not permit,在该命令前加上sudo即可暂时取得管理员最高权限)。出现如图所示结果即可。
6.放行8282端口(宝塔、阿里云都要开)
1)打开阿里云控制台的云服务器的安全组中,[配置规则],加入外部端口放行8282
2)打开宝塔面板里的[安全],放行8282端口
7.修改协议并重启
协议介绍:
protocol为应用层协议,目前支持的协议有
1、websocket协议
2、text协议
3、Frame协议
4、自定义通讯协议
5、tcp
直接裸tcp,不推荐,见通讯协议作用。
下面修改tcp协议为WebSocket协议
1)宝塔控制面板 —> 文件 —> 查找关键词start —> 选择start_gateway.php
2)编辑start_gateway.php —> Ctrl+F搜索”tcp” —> 修改为”websocket”
$gateway = new Gateway(''websocket://0.0.0.0:8282'');
3)在命令行中输入 sudo php start.php stop
终止程序
4)再输入sudo php start.php start -d
重启程序并保持不间断运行
PS:
(上述两条终止与重启命令要在GatewayWorker目录下进行,过程中如有重新进行远程连接,需重新进入该目录。
cd ..返回至最上层目录,
ls查看该目录下的文件,
cd filename进入该文件,
文件具体存放位置在宝塔Linux控制面板的文件中查看)
这个时候服务器后台已打开,每个人在电脑命令行上 telnet 你服务器的IP地址 8282 即可聊天
到这里我们的聊天室demo已经搭建完成,这其实就是实现物联网的后台了,之后将可上网的硬件连接上后台,硬件与硬件之间,就可以传送数据,就可以进一步地实现真正的万物互联。
四、可能遇到的问题
1.轻量服务器两种镜像的不同
轻量应用服务器使用宝塔应用镜像时站点只可通过域名访问(注册域名需进行备案才可生效),使用WordPress应用镜像时可直接通过公网IP进行访问。
另外,轻量服务器和ECS服务器的具体区别请自行百度。
2.忘记密码
如忘记宝塔Linux面板密码,应执行如下操作,紫框即你要修改的密码,红框即面板账户
如果提示多次登录失败,暂时禁止登陆,请输入以下命令以消除登录限制
rm -f /www/server/panel/data/*.login
3.telnet失败
telnet失败可能是你还没安装telnet,或者没有放行阿里云和你的服务器内部放行8282端口
安装telnet解决方案:
1)Linux一句命令解决:sudo yum install telnet
2)Windows开启telnet:百度
放行8282端口解决方案:
详细查看上面的教程 3-6放行端口
还有什么问题欢迎提出,技术哥会尽力为你们解答的!
**
**