thinkphp 配合 GatewayWorker 制作网页聊天室(ssl)
官方文档:http://doc2.workerman.net/work-with-other-frameworks.html
借用官方的图解释大致思路
gatewayWorker 只负责推送消息,浏览器向服务器发送消息采用ajax方式,在控制器中处理消息逻辑然后调用gatewayWorker 发送消息
我这里使用的是tp5框架,centos7.2
1.下载gatewayWorker(不需要放到tp5项目中,它作为一个单独的服务)
地址:http://www.workerman.net/download/GatewayWorker.zip
2.进入gatewayWorker 目录,以守护进程开启服务
3.将服务添加到开机自启
在最后一行加入
赋予执行权限
4.下载GatewayClient,解压放到tp5 extend 目录
地址:https://github.com/walkor/GatewayClient
代码片段
js:
2.php代码片段
注意:以上端口一定要开放哦(防火墙,云服务器安全组) 8282,1238
GatewayWorker 配置
心跳检测配置 /home/www/GatewayWorker/Applications/YourApp/start_gateway.php
/home/www/GatewayWorker/Applications/YourApp/Event.php
以上可能不够详细,可自行参考官方手册
10-30日更新
今天在项目应用到 https站点是socket连接失败 报错
failed: Error in connection establishment: net::ERR_SSL_PROTOCOL_ERROR
查找之后发现https站点连接的socket必须为wss的
下面为官方手册代码示例
http://doc2.workerman.net/secure-websocket-server.html
文件位置为 ./GatewayWorker/Applications/YourApp/start_gateway.php
修改完成之后需要重启gateway服务
js 中把
ws://ip:8282 修改为
wss://domian:8282