swoole_exmple/Server/tcp.php
Wenbin.Wang 1be654dd5f 代码
2021-12-24 16:44:53 +08:00

78 lines
2.1 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* TCP服务端类
* User: fantasticbin
* Date: 2020/1/15
*/
class Tcp
{
const HOST = '127.0.0.1';
const PORT = 9502;
const WORKER_NUM = 2;
const MAX_REQUEST = 10000;
public $server = null;
public function __construct()
{
// 创建TCP服务器第四个参数默认指定为TCP监听 127.0.0.1:9501 端口
$this->server = new Swoole\Server(self::HOST, self::PORT);
// 设置TCP服务器参数
$this->server->set([
'worker_num' => self::WORKER_NUM,
'max_request' => self::MAX_REQUEST
]);
// 监听连接进入事件
$this->server->on('Connect', [$this, 'onConnect']);
// 监听数据接收事件
$this->server->on('Receive', [$this, 'onReceive']);
// 监听连接关闭事件
$this->server->on('Close', [$this, 'onClose']);
}
/**
* 监听连接进入事件
* @param $serv Swoole\Server TCP对象
* @param $client_id int 客户端连接ID
* @param $reactor_id int 线程ID
*/
public function onConnect($serv, $client_id, $reactor_id)
{
echo 'Client: Connect.' . PHP_EOL . 'This client id: ' . $client_id . PHP_EOL . 'This reactor id: ' . $reactor_id . PHP_EOL;
}
/**
* 监听数据接收事件
* @param $serv Swoole\Server TCP对象
* @param $client_id int 客户端连接ID
* @param $reactor_id int 线程ID
* @param $data string 客户端传入的字符串
*/
public function onReceive($serv, $client_id, $reactor_id, $data)
{
$serv->send($client_id, 'This client id: ' . $client_id . PHP_EOL . 'This reactor id: ' . $reactor_id . PHP_EOL . 'Hello ' . $data . '!' . PHP_EOL);
}
/**
* 监听连接关闭事件
* @param $serv Swoole\Server TCP对象
* @param $client_id int 客户端连接ID
*/
public function onClose($serv, $client_id)
{
echo 'Client: Client ' . $client_id . ' close.' . PHP_EOL;
}
/**
* 启动TCP服务器
*/
public function start()
{
$this->server->start();
}
}
$tcp = new Tcp();
$tcp->start();