
1、搭建server.php代码
<?php
//创建Server对象,监听 127.0.0.1:9501端口
$serv = new swoole_server("127.0.0.1", 9501);
//监听连接进入事件
$serv->on('connect', function ($serv, $fd) {
echo "Client: 客户端握手成功.n";
});
//监听数据接收事件
$serv->on('receive', function ($serv, $fd, $from_id, $data) {
echo 'Client:接收到客户端发送过来的数据包:'.$data."n";
// 这里使用send,反推回去
$serv->send($fd, "Server: ".$data);
});
//监听连接关闭事件
$serv->on('close', function ($serv, $fd) {
echo "Client: 客户端主动断开连接.n";
});
//启动服务器
$serv->start();
2、搭建client.php代码
<?php
//打开异步socket
$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
//注册连接成功回调
$client->on("connect", function($cli) {
// 向服务器发送数据
$cli->send("小黄牛真他妈帅!");
// 3秒后执行
swoole_timer_after(3000, function() use($cli) {
// 主动关闭连接
$cli->close();
});
});
//注册数据接收回调
$client->on("receive", function($cli, $data){
echo "接收到回调数据: ".$data."n";
});
//注册连接失败回调
$client->on("error", function($cli){
echo "服务端连接失败n";
});
//注册连接关闭回调
$client->on("close", function($cli){
echo "与服务端关闭了连接n";
});
//发起连接
$client->connect('127.0.0.1', 9501, 0.5);
3、进行demo测试
这里注意,我们需要开启两个cmd命令界面,分别使用cd命令进入到server.php和client.php文件的所在目录下。
然后先在第一个命令行中使用:php server.php
启动服务端代码
再到第二个命令行中使用命令启动客户端代码,发送一次握手请求进行测试:php client.php
php启动客户端代码
我们就可以看到以下结果了:


注意:代码里我们是使用了一个swoole_timer_after()函数,用于设置定时执行,如果对PHP7的闭包函数不熟的同学,建议看下博客里有关PHP7的文章。
最后推荐大家可以用下我开源的一个基于Swoole4.5+研发的PHP框架。该框架基于注解实现了很多好玩的功能,很适合新人快速上手Swoole扩展。
SW-X框架-专注高性能便捷开发而生的PHP-SwooleX框架www.sw-x.cn
版权声明:本文为weixin_39553757原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。