Swoole 的应用
创建 Server
- 构建 Server 对象
- 设置运行参数
- 注册事件回调参数
- 启动服务器
$server = new \Swoole\Server($host, $port = 0, $mode = SWOOLE_PROCESS, $sockType = SWOOLE_SOCK_TCP);
// 可以混合使用UDP/TCP,同时监听内网和外网端口,多端口监听参考 addlistener 小节。
$server->addlistener("127.0.0.1", 9502, SWOOLE_SOCK_TCP); // 添加 TCP
$server->addlistener("192.168.1.100", 9503, SWOOLE_SOCK_TCP); // 添加 Web Socket
$server->addlistener("0.0.0.0", 9504, SWOOLE_SOCK_UDP); // UDP
$server->addlistener("/var/run/myserv.sock", 0, SWOOLE_UNIX_STREAM); //UnixSocket Stream
$server->addlistener("127.0.0.1", 9502, SWOOLE_SOCK_TCP | SWOOLE_SSL); //TCP + SSL
$port = $server->addListener("0.0.0.0", 0, SWOOLE_SOCK_TCP); // 系统随机分配端口,返回值为随机分配的端口
echo $port->port;
$server->set(array(
'reactor_num' => 2, // reactor thread num
'worker_num' => 4, // worker process num
'backlog' => 128, // listen backlog
'max_request' => 50,
'dispatch_mode' => 1,
));
客户端
同步客户端
Swoole\Client 以下简称 Client,提供了 TCP/UDP、socket 的客户端的封装代码,使用时仅需 new Swoole\Client 即可。可用于 FPM/Apache 环境。同步是 阻塞
的。
$client = new Swoole\Client(SWOOLE_SOCK_TCP);
if (!$client->connect('127.0.0.1', 9501, -1)) {
exit("connect failed. Error: {$client->errCode}\n");
}
$client->send("hello world\n");
echo $client->recv();
$client->close();
异步客户端
使用场景:服务端不能及时返回数据。
典型应用场景
- 移动互联网 API 服务器
- 物联网(IOT)
- 微服务(Micro Service)
- 游戏服务器
- 在线聊天系统
更多精彩内容:各种AI课程、技能课程、黑科技软件、网站小程序源码、副业小项目、PPT模板等精品素材、电商课程、推广引流课程等,尽在 天边资源网 。