php5.6 安装swoole,【swoole】php5.6 swoole(demo)小测试

swoole:

网上看到的解释

“实现实时异步任务队列;

PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。”

相关文档地址:https://wiki.swoole.com/wiki/page/6.html

刚接触swoole的时候是懵的状态,然后看demo自己试着调试了一下:

//server.php 服务端

$serv = new swoole_server("0.0.0.0", 4001);//本地的 没被占用的端口

//设置异步任务的工作进程数量

$serv->set(array('task_worker_num' => 4));//一开始设置了4个,然而我测试的时候并没有用这么多

//接收客户端发来的数据

$serv->on('receive', function($serv, $fd, $from_id, $data) {

//投递异步任务

$serv->send($fd, 'Swoole: '.$data.'测试数据');//发送回客户端

$task_id = $serv->task($data);//继续向服务端发送(执行异步任务)

echo "receive" . $task_id;//当前的作业号

});

//处理异步任务

$serv->on('task', function ($serv, $task_id, $from_id, $data) {

sendScore($data);//自己写的方法 处理数据

//返回任务执行的结果

$serv->finish($data);

});

//处理异步任务的结果

$serv->on('finish', function ($serv, $task_id, $data) {

echo "finish".$task_id;//任务结束标志

});

$serv->start();

//自己写的测试方法

function sendScore($data){

//获取到$data

//$arr = json_decode($data,true);

//判断数据是否异常

echo '判断数据是否异常(中间层的异步执行)';

return true;

}

//client.php 客户端

$client = new swoole_client(SWOOLE_SOCK_TCP);

if (!$client->connect('0.0.0.0', 4001, -1))

{

exit("connect failed. Error: {$client->errCode}\n");

}

$client->send('hello lin');//客户端发送数据给服务端

echo $client->recv();//接收服务端传回来的

$client->close();

先执行server.php,然后执行client.php

当server开始跑的时候,client发送消息,server开始处理,client接收服务端的返回值,服务端记录输出接收和完成的任务。

5472963f671182e5a36d82a7064089d8.png

ce1ebc7a0b43907cf3c6c680426bd5d2.png

这才是刚刚开始......下面打算做一个聊天室之类的练手,如果上面有哪里写的不对的.....以后回来再更新~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值