本程序有2部分: 1.MqttPhp 用于连接mqtt服务器及提供websocket服务。 该程序用到了2个开源库: sskaje/mqtt:用于连接mqtt服务器,发布和订阅主题(https://github.com/sskaje/mqtt) workerman:PHP socket 服务器框架,用于给web客户端提供websocket服务(http://www.workerman.net/) 2.CaysnWeb 用于Web客户端,纯静态页面 部署说明: MqttPhp需要部署在Linux环境(已测试php7.1.7 CentOS7.3),若要在window部署需要将workerman换成windows版,具体参考workerman官方文档,不建议使用windows作为生产环境。 默认websocket占用2345端口,请对此端口开放防火墙 Linux用户可以运行以下脚本检查本地环境是否满足WorkerMan要求 curl -Ss http://www.workerman.net/check.php | php MQTT服务器部署可查看http://emqtt.com/ 部署步骤: 1.在MqttPhp/test/test.inc.php配置中修改为自己的mqtt服务器的地址和用户名密码 2.将MqttPhp放在linux服务器中 3.进入到MqttPhp/test目录,运行 php work.php start 进入调试模式 或 php work.php start -d则是进入daemon模式(也就是正式上线的运行模式,关闭终端不受影响) 4.在CaysnWeb\js\main.js中ws = new WebSocket("ws://127.0.0.1:2345");修改为MqttPhp所在的服务器ip及WebSocket服务端口(默认2345) 5.直接用浏览器打开CaysnWeb\index.html 或 部署在web服务器上打开 6.若连接websocket服务器成功,浏览器的Console会打印出“连接成功” 7.在Topic中输入打印机订阅的Topic,点击Punish即可发布消息到打印机