Swoole:從新定義PHP

Swoole PHP語言的高性能網絡通訊框架,提供了PHP語言的異步多線程服務器,異步TCP/UDP網絡客戶端,異步MySQL,數據庫鏈接池,AsyncTask,消息隊列,毫秒定時器,異步文件讀寫,異步DNS查詢。
Swoole能夠普遍應用於互聯網、移動通訊、企業軟件、雲計算、網絡遊戲、物聯網、車聯網、智能家居等領域。 使用PHP+Swoole做爲網絡通訊框架,能夠使企業IT研發團隊的效率大大提高,更加專一於開發創新產品。php

官方網站:http://www.swoole.com/git

github:https://github.com/swoole/swoole-srcgithub

php擴展包下載地址:http://pecl.php.net/package/swoole數據庫

2. 安裝與配置

安裝swoole:可pecl直接在線安裝,或下載 releases版本的swoole編譯安裝
bash

pecl安裝swoole擴展服務器

pecl不可用的請確認php安裝目錄的bin目錄已加入系統變量swoole

# pecl install swoole

 2.12編譯安裝swoole擴展網絡

今後處下載: http://pecl.php.net/package/swoole多線程

# cd swoole
# phpize # ./configure # make && make install

2.2配置php.ini框架

phpinfo()確認Configuration File (php.ini) Path

添加:

extension=swoole.so

重啓Apache查看php擴展庫

# service httpd restart
# php -m

確認swoole已添加

 

做爲socket客戶端示例

$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_SYNC); //同步阻塞
$ret = $client->connect('127.0.0.1', 9501, 0.5, 0);
$client->send("hello world\n");
$data = $client->recv(1024);
echo $data;
unset($client);

類的構造方法,第一個參數是socket的類型,目前支持SWOOLE_SOCK_UDP/SWOOLE_SOCK_TCP。第二個參數 SWOOLE_SOCK_SYNC表示是同步阻塞來執行的。Swoole已經設置過超時,就算沒有收到數據包,在超過約定時間後也會返回的。

connect方法用來鏈接到Server。參數分別是Host、Port、超時時間單位是秒0.5表示500ms、是否啓用UDP connect。

send方法用來發送數據,recv方法來接收數據,recv方法支持第二個參數,若是第二個參數爲true,表示會等到全部數據到來纔會返回。

析構對象時會自動close此socket,因此沒有提供close方法。

相關文章
相關標籤/搜索