PHP的非同步並行網路擴充套件swoole如何使用

2021-09-01 22:00:40 字數 995 閱讀 3289

swoole是php的非同步並行擴充套件,有點像node.js,但swoole既支援同步又支援非同步,比node更強大。swoole擴充套件是基於epoll高效能事件輪詢,並且是多執行緒的,效能非常好。

swoole除了提供網路server/client的功能之外,還提供了task非同步任務管理器,可以使你的程式中某些處理慢的函式非同步去執行。

本文說下如何使用swoole擴充套件。

swoole僅支援linux/freebsd/mac,如果你使用的是windows系統,請安裝乙個虛擬機器,virtualbox/vmware都可以。然後在虛擬機器裡安裝linux。

swoole已經加入到php的官方擴充套件庫中,所以在linux系統裡只需要執行

pecl install swoole
即可安裝。安裝完後修改php.ini,加入extension=swoole.so。然後檢視php -m 或者 phpinfo,如果出現swoole證明安裝成功了。

$serv = new swoole_server("127.0.0.1", 9501);

$serv->on('connect', function ($serv, $fd));

$serv->on('receive', function ($serv, $fd, $from_id, $data) );

$serv->on('close', function ($serv, $fd) );

$serv->start();

然後執行:

php server.php
使用telnet連線到你的伺服器:

telnet 127.0.0.1 9501

> hello world

> swoole: hello world

是不是非常簡單,僅僅11行**就建立了乙個非同步高併發的tcpserver,通過底層的網路來進行資料收發。接下來就是你就可以做你想要做的事情了,即時聊天,檔案收發,通訊等等。

為PHP新增swoole非同步並行擴充套件

1.確認安裝環境 2.安裝與配置 2.11 pecl安裝swoole擴充套件 pecl不可用的請確認php安裝目錄的bin目錄已加入系統變數 pecl install swoole2.12編譯安裝swoole擴充套件 cd swoole phpize configure make make inst...

非同步函式的序列與並行

通過返回乙個物件的形式,實現對非同步函式進行序列 並行 全執行完畢的操作 實現如下 const queue 判斷是否全部完成 const then callback if task list.length 1 task 二次封裝為合適的非同步函式 const async fn 新增任務 const ...

同步非同步,併發並行概念的理解

同步與非同步 同步 傳送乙個請求,等待返回,然後再傳送下乙個請求 非同步 傳送乙個請求,不等待返回,隨時可以再傳送下乙個請求 同步可以避免出現死鎖,讀髒資料的發生,一般共享某一資源的時候用,如果每個人都有修改許可權,同時修改乙個檔案,有可能使乙個人讀取另乙個人已經刪除的內容,就會出錯,同步就會按順序...