安裝 和使用 swoole擴(kuò)展

我的環(huán)境是Ubontu14.04
1、apt-get install libpcre3-dev
2、sudo pecl install swoole

成功后,會提示如下

install ok: channel://pecl.php.net/swoole-1.7.8
configuration option “php_ini” is not set to php.ini location
You should add “extension=swoole.so” to php.ini
zzs@ubuntu:~$ sudo vim /etc/php5/mods-available/swoole.ini

3、sudo vim /etc/php5/mods-available/swoole.ini
添加如下

; configuration for php Swoole module
extension=swoole.so

4、運(yùn)行 php -m | grep swoole
若是沒有顯示 swoole ,進(jìn)行以下操作
5、sudo ln -s /etc/php5/mods-available/swoole.ini /etc/php5/cli/conf.d/20-swoole.ini
6、再運(yùn)行 php -m | grep swoole
若還是沒有顯示,再進(jìn)行以下操作

sudo ln -s /etc/php5/mods-available/swoole.ini /etc/php5/apache2/conf.d/20-swoole.ini
sudo ln -s /etc/php5/mods-available/swoole.ini /etc/php5/fpm/conf.d/20-swoole.ini

7、再運(yùn)行 php -m | gerp swoole

查看 php -m | grep swoole
會顯示 swoole

再使用php代碼進(jìn)行測試,

client.php

<?php

class Client{

    private $client;
    
    public function __construct(){
            $this->client = new swoole_client(SWOOLE_SOCK_TCP);
    }
    public function connect(){
        if (!$this->client->connect("127.0.0.1", 9501, 1)) {
            echo "Error: {$fp->errMsg}[{$fp->errCode}]\n";
    }
    $message = $this->client->recv();
    echo "Get Message From Server:{$message}\n";
    fwrite(STDOUT, "請輸入消息:");
    $msg = trim(fgets(STDIN));
    $this->client->send($msg);
    }
}
$client = new Client();
$client->connect();

server.php

<?php
class Server{
    
    private $serv;
    
    public function __construct(){
        $this->serv = new swoole_server("0.0.0.0", 9501);
        $this->serv->set(array(
                'worker_num' => 8,
                'daemonize' => false,
                'max_request' => 10000,
                'dispatch_mode' => 2,
                'debug_mode' => 1
                ));
        $this->serv->on('Start', array($this, 'onStart'));
        $this->serv->on('Connect', array($this, 'onConnect'));
        $this->serv->on('Receive', array($this, 'onReceive'));
        $this->serv->on('Close', array($this, 'onClose'));
        $this->serv->start();
    }
    public function onStart($serv){
        echo "Start\n";
    }
    public function onConnect($serv, $fd, $from_id){
        $serv->send($fd, "Hello {$fd}!");
    }
    public function onReceive(swoole_server $serv, $fd, $from_id, $data){
        echo "Get Message From Client {$fd}:{$data}\n";
    }
    public function onClose($serv, $fd, $from_id){
        echo "Client {$fd} close connection\n";
    }
}
// 啟動服務(wù)器
$server = new Server();

開啟兩個端口進(jìn)行測試,如下所示

Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • PS:在系統(tǒng)安裝完后最好執(zhí)行下列命令更新下軟件 sudo apt-get update 實(shí)際上只要軟件源沒什么問題...
    重型技術(shù)宅男閱讀 1,061評論 0 1
  • 1.LAMP介紹 ? LAM(M)P:L: linuxA: apache (httpd)M: mysql, mar...
    尛尛大尹閱讀 1,236評論 0 1
  • //用tasksel可以一鍵安裝lamp的集合環(huán)境包 root一、安裝(以root的身份登入系統(tǒng),不需要輸入前邊的...
    Tangbh閱讀 1,739評論 1 2
  • 一、文件/文件夾管理 ls 列出當(dāng)前目錄文件(不包括隱含文件)ls -a 列出當(dāng)前目錄文件(包括隱含文件)l...
    路癡千行閱讀 2,619評論 0 5
  • 如今的世界發(fā)展迅猛,各種電子商務(wù),各種黑色科技,各種進(jìn)口商品,玲瑯滿目。吃飯吃多少,再也不是什么問題。我們不再為飯...
    風(fēng)狼志閱讀 283評論 0 0

友情鏈接更多精彩內(nèi)容