使用laravels可能遇到的小小坑
前段时间学习使用laravels差点把心态搞蹦了,还是吃了没有仔细看文档亏,所以刚接触laravels的小伙伴一定要仔细看文档呀
(都是血的教训)
一.Class Swoole does not exist
说说这遇到第一个问题吧。报这个错的原因是因为Laravels中的swoole是以cli模式启动的Http_Server代替了FPM,在投递任务,触发异步时间都会调用app('swoole')
,从Laravel容器
中获取Swoole\http\server
实例。只有在LaravelS
启动时,才会注入这个实例到容器中,所以一旦脱离LaravelS
环境,就可能会报Class Swoole does not exist
,这个时候你需要检查你的Apache或者Nginx的配置文件
二.WebSocket无法连接
1.确认安全组是否放行了端口
2.确定地址是否正确,后面是否有path部分(Http和WebSocket共存Nginx通过location区分,按照文档中的配置,你需要在路径后加上/ws
)
3.以上都确认无误,按照文档步骤,还是无法连接websocket
报错为WebSocket opening handshake timed out
文档中启用WebSocket
文件WebSocketService
里onHandShake
方法是被注释了的,你需要启用这个方法并且在方法里自定义握手,完成后重启laravels就大功告成啦
以上就是我使用laravels遇到问题,若有错误还请大佬指导
,也可以说说你在使用的时候遇到的坑大家一起交流 总结一下就是仔细看文档啊朋友们
本作品采用《CC 协议》,转载必须注明作者和本文链接
Laravels
是什么?确定不是Laravel
?用了
Task::deliver
单元测试搞不了了, 也是提示Class swoole does not exist
laravels WebSocket长连接怎么做心跳重连,设置了心跳检测只是时间到了就close,在发送消息不能链接上websocket了
我最近做这个也是在Target class swoole 不存在,卡了好几天。我原本以为在nginx的虚拟机配置的地方,增加的那个配置没用。结果在控制器往websocket 推送数据的时候一直报错。但是js websocket客户端又能正常通信。真的是一段难以忘怀的经历。