一、下载安装GatewayWorker
1. 下载Linux的demo
地址:http://doc2.workerman.net/642185
2. 根据官方文档安装demo,如果启动报错
pcntl_signal() has been disabled for security reasons in file /www/wwwroot/shop/vendor/workerman/workerman/Worker.php on line 1107
pcntl_fork() has been disabled for security reasons in file /www/wwwroot/shop/vendor/workerman/workerman/Worker.php on line 1514
问题原因:pcntl_signal,pcntl_fork等系列函数被禁用了
解决方案:找到 php.ini 文件并定位到 disable_functions 字段,将其后的 pcntl_signal、pcntl_fork等系列函数删掉。
宝塔面板操作步骤:软件商店(已安装) -> PHP5.6 ->设置-> 禁用函数,将pcntl_signal、pcntl_fork等系列删除即可
3. 根据官方文档新开几个cmd命令行窗口运行 telnet 127.0.0.1 8282,输入任意字符即可聊天(非本机测试请将127.0.0.1替换成实际ip)
如果telnet超时请检查服务器防火墙
防火墙:
查看firewall服务状态:systemctl status firewalld
查看firewall状态:firewall-cmd --state
firewalld.service服务命令
开启:service firewalld start
重启:service firewalld restart
关闭:service firewalld stop
4.注意事项
1.telnet连接测试只能用text协议,websocket不行,websocket测试可用在线websocket工具测试连接
2.如果启动成功,websocket连接不上,请检查服务器端口是否开放如:8282端口
5.报错及处理方法
1.SSL证书问题,报错为“exception onOpen fail code:8, msg:TLS handshake failed”
处理:根据websocket项目下的start_gateway.php文件中的SSL配置路径,上传SSL证书到服务器
二、与TP5框架结合
1. GatewayWorker中的start_gateway.php文件中
gateway进程 改用websocket协议
// gateway 进程,这里使用websocket协议,可以用telnet测试
$gateway = new Gateway("websocket://0.0.0.0:8282");