swoole 学习笔记

2019-05-06 19:42:25 964 思小齐 思小齐

1.安装准备

php-5.3.10    // 或更高版本
gcc-4.4       //或更高版本
make
autoconf

2.安装swoole扩展

wget https://github.com/swoole/swoole-src/archive/swoole-1.8.2-stable.tar.gz
tar -zxvf swoole-1.8.2-stable
cd swoole-src-swoole-1.8.2-stable/
/usr/local/php/bin/phpize
./configure
make && make install

3.配置php支持swoole

编辑php.ini 在其中加入扩展支持

extension=swoole.so

4.swoole 服务端代码 server.php

<?php
/**
 * 服务端
 */
$serv = new swoole_server("0.0.0.0", 9501);
$serv->on('connect', function ($serv, $fd){
    echo "Client:Connect.\n";
});
$serv->on('receive', function ($serv, $fd, $from_id, $data) {
    $serv->send($fd, 'Swoole: '.$data);
});
$serv->on('close', function ($serv, $fd) {
    echo "Client: Close.\n";
});
$serv->start();

5.swoole 客户端代码 client.php

<?php
    $client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
    $client->on("connect", function($cli) {
        $cli->send("hello world\n");
    });
    $client->on("receive", function($cli, $data){
        echo "Receive: $data\n";
    });
    $client->on("error", function($cli){
        echo "connect fail\n";
    });
    $client->on("close", function($cli){
        echo "close\n";
    });
    $client->connect('127.0.0.1', 9501, 0.5);

6.测试代码

在cli命令模式下输入

php ./server.php

重新再开一个窗口

php ./client.php

可以用 telnet检测
如:telnet 127.0.0.1 8088

服务端:
图片描述

客户端:
图片描述

如上,表示服务端启动,客户端连接服务端返回消息,一个socket闭环形成

swoole 开发者头条