需要实现一个简单的 PHP 长连接功能,使用 Swoole 作为最开始的尝试,转过来的一个 Swoole 的介绍:
PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。
Swoole官网的文档不够丰富啊,这比较头疼,但大部分的问题都解释了。如果你对Swoole很感兴趣,那么看看这个Swoole入门教程。Swoole提供了多线程、长连接等很多牛逼的功能,把php上升到了一个新的台阶
安装
首先遇到的就是安装的问题,因为我用的是 XAMPP 的集成环境,所以直接安装:
先需要一个 Mac 的 autoconf 包:
brew install autoconf
然后找到 XAMPP 的bin目录,安装 Swoole:
sudo ./pecl install swoole
在 php.ini 中添加:
extension=swoole.so
重启 Apache 以后 php -m 就可以看到 Swoole 安装完成了
使用
首先可以以最直观的方式理解一下 Swoole 建立起来的长连接的作用,官网文档里面有一个非常直观的例子:《搭建Echo服务器》
为了方便业务逻辑的处理,需要 Swoole 可以方便的调用 Laravel 框架的功能,具体的思路是实现一个 Laravel 的 Artisan 命令,然后通过命令行的形式完成 server 的启动,可以参考这篇文章:《Laravel如何优雅的使用Swoole》
接下来会在正式环境中使用 Swoole,后续文档也会在这里慢慢补充