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