swoole server-tcp

2018-03-31  本文已影响0人  dongshixiao
<?php
/**
 * Created by PhpStorm.
 * User: season
 * Date: 18-3-31
 * Time: 下午2:21
 */

//创建server对象 监听本地9501端口
$serv = new \Swoole\Server('127.0.0.1', 9501);
$serv->set([
    'worker_num' => 4,// worker进程数  cpu1-4倍
    'max_request' => 10000,//根据内存等来设置
]);

/**
 * 监听连接进入事件
 *
 * $fd(自增) 客户端连接的唯一标识
 * $reactor_id (线程id)
 */
$serv->on('connect', function ($serv, $fd, $reactor_id) {
    echo "客户端已连接-线程:{$reactor_id},标识:{$fd}\n";
});

/**
 * 监听数据接收事件
 *
 * $fd(自增) 客户端连接的唯一标识
 * $reactor_id (线程id)
 * $data 用户发送过来的数据
 */
$serv->on('receive', function ($serv, $fd, $reactor_id, $data) {
    //send 向客户端发送数据
    $serv->send($fd, "服务器向你(线程:{$reactor_id},标识:{$fd})发送数据:" . $data . "\n");
});


/**
 * 监听连接关闭事件
 */
$serv->on('close', function ($serv, $fd) {
    echo "标识为{$fd}的客户端已关闭\n";
});

//启动服务器
$serv->start();

运行效果:


运行效果

断开其中一个连接:


断开其中一个连接

查看worker_num设置的数量


image.png
上一篇下一篇

猜你喜欢

热点阅读