記錄Swoole學習筆記

記錄Swoole學習筆記

推薦(免費):swoole

1. 安裝

目前官方推薦兩種方式

1).使用pecl的方式安裝

pecl install swoole

2).使用源碼安裝,推薦下載releases版本的swoole,最好不要從github主干上拉取代碼編譯,直接下載tar包。

swoole包下載地址

然后進行編譯安裝

    wget https://github.com/swoole/swoole-src/archive/v2.0.7.tar.gz     tar -zxf v2.0.7.tar.gz     cd swoole-src-2.0.7/     phpize     //如果執(zhí)行這個命令沒有任何顯示的話,使用apt-get install php7.0-dev安裝包     ./configure     make && make install

2. 更改php.ini擴展

修改php.ini配置文件,使用命令 php -i |grep php.ini 查看php.ini位置
增加配置

    extension=swoole.so

通過php -m或phpinfo()來查看是否成功加載了swoole

3. 栗子TCP服務器,三次握手

簡單理解Socket

編寫 server.php

    //創(chuàng)建Server對象,監(jiān)聽 127.0.0.1:9501端口$serv = new swoole_server("127.0.0.1", 9501);       //監(jiān)聽連接進入事件$serv->on('connect', function ($serv, $fd) {          echo "Client: Connect.n";     });      //監(jiān)聽數據接收事件$serv->on('receive', function ($serv, $fd, $from_id, $data) {         $serv->send($fd, "Server: ".$data);         echo "Receive message:$data";         //關閉連接(當然,也可以不關閉,不關閉的話會一直等待接收命令而無法退出)         $serv->close($fd);     });      //監(jiān)聽連接關閉事件$serv->on('close', function ($serv, $fd) {         echo "Client: Close.n";     });      //啟動服務器$serv->start();

4. 啟動服務

    php server.php

啟動后,光標即停止在這里,等待其他用戶連接。

5. 查看連接

使用命令 netstat -an | grep 端口 來查看端口是否處于 Listening狀態(tài)

    netstat -an | grep 9501

(PS: 注意服務器所使用的IP地址,如果是127.0.0.1回環(huán)地址,則客戶端只能使用127.0.0.1才能連接上)

6. 測試TCP服務器

新開窗口使用 telnet 連接服務器

    telnet 127.0.0.1 9501

此時,觀察啟動服務的機器,會發(fā)現有返回數據

    php server.php     > Client:Connect.

在返回客戶端,輸入hellp world,發(fā)現寫入和讀取成功

    root@iZ28evegw6zZ:~# telnet 127.0.0.1 9501     Trying 127.0.0.1...     Connected to 127.0.0.1.     Escape character is '^]'.     hellp world      //此處是輸入的命令     Server:hellp world    //recv()讀取命令成功     Connection closed by foreign host.   //退出成功     返回到服務器端觀察     root@iZ28evegw6zZ:/var/www/html# php server.php     Client: Connect.   //連接成功消息     Receive message: hellp world   //接收到數據     Client:Close.   //客戶端退出成功

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享