需要實現一個簡單的 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,后續文檔也會在這里慢慢補充