10、Swoole 初体验
引言
介绍完 Swoole 及具备的能力、应用场景以及常用框架,下面就带大家来简单体验一下,创建一个 TCP 服务。
Swoole 体验
创建 swoole, 默认创建的是一个同步的阻塞tcp服务
$host = "127.0.0.1"; // 0.0.0.0 代表接听所有 // 创建Server对象,监听 127.0.0.1:9501端口 $server = new Swoole\Server($host, 9501);
注册事件
// 监听启动事件
$server->on('Start', function($server) use ($host){
echo "启动swoole 监听的信息tcp:$host:9501\n";
});
//监听连接进入事件
$server->on('Connect', function ($server, $fd) {
echo "Client: Connect.\n";
});
//监听数据接收事件
$server->on('Receive', function ($server, $fd, $from_id, $data) {
$server->send($fd, "Server: ".$data);
});
//监听连接关闭事件
$server->on('Close', function ($server, $fd) {
echo "Client: Close.\n";
});
- 启动服务器
// 阻塞
$server->start(); // 阻塞与非阻塞
运行程序
// 保存成 PHP 文件,然后通过 php 运行
php swoole_tcp_server.php
连接服务
服务启动好之后就可以通过 curl 请求一下试试:
(请求之前需要)
curl http://127.0.0.1:9501
# 请求连接之后就会返回一些基础信息,并一直阻塞住
Server: GET / HTTP/1.1
User-Agent: curl/7.29.0
Host: 127.0.0.1:9501
Accept: */*
结语
# 一个用 swoole 搭建的服务器已经可以了,客户端连接正常,这样就可以保持一个长连接,而不必像 PHP-FPM 那种形式一样,每次都要重新连接,浪费资源,做微服务的时候就可以一直保持连接拉,包括做各种数据中间件的连接池都可以啦,接下来可以看我的博客继续学习 Swoole 啦
本作品采用《CC 协议》,转载必须注明作者和本文链接
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
文章来源blog.arunfung.com
推荐文章: