安装 和使用 swoole扩展

我的环境是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、运行 php -m | grep swoole
若是没有显示 swoole ,进行以下操作
5、sudo ln -s /etc/php5/mods-available/swoole.ini /etc/php5/cli/conf.d/20-swoole.ini
6、再运行 php -m | grep swoole
若还是没有显示,再进行以下操作

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、再运行 php -m | gerp swoole

查看 php -m | grep swoole
会显示 swoole

再使用php代码进行测试,

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";
    }
}
// 启动服务器
$server = new Server();

开启两个端口进行测试,如下所示

Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • PS:在系统安装完后最好执行下列命令更新下软件 sudo apt-get update 实际上只要软件源没什么问题...
    重型技术宅男阅读 1,061评论 0 1
  • 1.LAMP介绍  LAM(M)P:L: linuxA: apache (httpd)M: mysql, mar...
    尛尛大尹阅读 1,237评论 0 1
  • //用tasksel可以一键安装lamp的集合环境包 root一、安装(以root的身份登入系统,不需要输入前边的...
    Tangbh阅读 1,740评论 1 2
  • 一、文件/文件夹管理 ls 列出当前目录文件(不包括隐含文件)ls -a 列出当前目录文件(包括隐含文件)l...
    路痴千行阅读 2,621评论 0 5
  • 如今的世界发展迅猛,各种电子商务,各种黑色科技,各种进口商品,玲琅满目。吃饭吃多少,再也不是什么问题。我们不再为饭...
    风狼志阅读 283评论 0 0

友情链接更多精彩内容