TP5使用GatewayWorker

一、下载安装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证书到服务器

image.png

二、与TP5框架结合

1. GatewayWorker中的start_gateway.php文件中

gateway进程 改用websocket协议

// gateway 进程,这里使用websocket协议,可以用telnet测试
$gateway = new Gateway("websocket://0.0.0.0:8282");

2. GatewayWorker中的start_businessworker.php、start_gateway.php和start_register.php中的端口号要保持一致,例如:127.0.0.1:1238,其余参考官方文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容