Swoole整合ThinkPHP3.2系列教程六

时间:2022-01-06 06:47:57

终结篇

哈哈,我就说这一系列是完整的吧。

我们并没有用swoole框架重构系统代码,只是当成一个长连接扩展库来使用的。

swoole很强大,我们只是用了swoole很小很小的一部分。如果用swoole做更多精细化的处理,很麻烦。

毕竟我这种面向工资编程的开发者得服从leader的安排(尽快上线)。

如果有同学在使用过程中出现问题了欢迎留言讨论。

我踩过的坑

  1. swoole_client只能在cli模式下运行,不要指望在浏览器里调用。

  2. 最早想要搭建一个TCP连接,然后用浏览器也访问这个server,虽然无法在页面输出,但是在swoole的onReceive回调里依然是可以接收到值的,想利用这个特性做浏览器访问。如果你也有这个思路,可以停止了。

  3. swoole_client是没有办法连接websocket服务端的,必须使用swoole_http_client,设置项增加’websocket_mask’ => true

  4. 开发过程中临时补了一些TCP/IP协议的东西,望着这些东西,想起上学时浪费时间打的LOL,留下了悔恨的眼泪。

  5. 使用本教程里的案例 php swoole.php start启动时,请一定要确保在onWorkerStart回调了加载TP框架东西的时候,确保要在指定的模块里含有StartController并且里面有index方法,不然你就会看到惊喜的一幕。TP框架抛出错误exit,swoole重新拉起worker进程,TP框架抛出错误exit,swoole重新拉起worker进程,这种死循环简直过瘾。log里记录的错误信息是[zm_deactivate_swoole: worker process is terminated by exit()/die().]

  6. 当在线上部署时,将swoole设置为守护进程运行,此时记得把所有路径定义的部分 比如require(TP框架)的部分都换成绝对路径 dirname(__DIR__)这种的。。