laravel+GatewayWorker 完成IM即时通信以及文件互传功能(第四章:服务端调试错误)
功能简介
本专题将带手把手带你搭建 仿某信的 即时通信功能 并完成文件互传
应用场景
本专题实际应用场景:
- 聊天客服:即时通信,消息实时互传,互相发送文字、语音消息以及文件;
- 小规模线上竞拍;
- 视频实时弹幕;
- 物联网;
- 以及其他与实时消息相关的功能;
专题章节
第四章:服务端调试错误
一、在服务器终端运行GatewayWorker的PHP启动命令进行报错调试
下面我们开始访问前面定义好的IM测试页面"indexA.blade.php",请在浏览器地址栏输入http://im.liutong.pro/im/indexA进行访问;
- 调试报错:
- 打开终端链接你的服务器并使用cd命令进入项目的"/www/wwwroot/im.liutong.pro/app/GatewayWorker"目录中(这里看你是把官方Demo中的GatewayWorker文件夹放在哪里你就cd到那里!)
- 更具手册执行启动服务名命令,手册地址(启动与停止):https://www.workerman.net/doc/gateway-worker/start-and-stop.html
使用php start.php start
命令启动服务
- 执行启动命令后发现报错,这个错误属性为php默认进行了一些危险函数,我们需要手动解除这些函数的禁用状态,这个过程需要解除很多被禁用的函数,我在下面附表格,这里就不一一截图了;
函数名 |
---|
pcntl_signal() |
pcntl_fork() |
pcntl_wait() |
pcntl_signal_dispatch() |
pcntl_alarm() |
-
如何解除php的函数禁用
-
在我们删除了上述列表中被禁用的5个函数后,再次使用
php start.php start
命令你将得到如下结果;
这就说明服务启动成功了,此时回到前端页面刷新你将会得到一下结果,这就标识你的websocket已经链接成功了;
如果你的代码还是报错或者终端无法启动成功,请查看服务器nginx防火墙,我这里为了方便演示将nginx防火墙关闭了;
注意:如果你修改了php的GatewayWorker的代码记得要再次进入 项目根目录/app/GatewayWorker 使用命令php start.php start
重启服务,否则新修改的代码是不会生效的!