swoole的初步学习

1、能做什么

异步多线程服务器和客户端

异步mysql、redis、数据库连接池、任务队列

http/websocket服务器/客户端

异步文件独写

支持协程

2、环境要求

php5.4以上

centos7

3、关于tcp服务器

4、关于UDP服务器

packet接收发送数据到客户端的数据

5、关于调试工具【网络调试助手】

6、代码示例

   tcp

//创建服务器
$host='0.0.0.0';
$port=9501;

$ws = new swoole_server($host,$port);
/**
 * host :监听的ip
 * port: 端口号 1024以下的端口号需要root权限
 */
//使用
// bool $swoole_server->on($envent,$callback);
/**
 * connect :当建立链接的时候 $server:服务器信息,$fd 客户端信息
 * receive :当接收到数据的时候 $server:服务器信息,$fd:客户端信息。$from_id:id ,$data:数据
 * closer :关闭连接
 */
$ws->on('connect',function($server,$fd){
    echo "建立连接";
});
$ws->on('receive',function($server,$fd,$from_id,$data){
    var_dump($data);
    echo "接收到数据\n";
});
$ws->on('close',function($server,$fd){
    echo "关闭连接";
});
$ws->start();//启动服务

 UDP 

$serv=new swoole_server('0.0.0.0',9502,SWOOLE_PROCESS,SWOOLE_SOCK_UDP);
/**\
 * $server:服务器信息
 * $data:接收到的数据
 * $fd:客户端信息
 */
$serv->on('packet',function($server,$data,$fd){
    //发送到数据到客户端
    $server->sendto($fd['address'],$fd['port'],"server:$data");
    var_dump($fd);
});
$serv->start();//启动服务

web服务器

<?php
$serv= new swoole_http_server("0.0.0.0",9501);
/**
 * 获取请求
 * //request 请求信息
 * response 返回信息
 **
**/
$serv->on("request",function ($request,$response){
  $response->header("Content-Type","text/html:charset=utf-8");
  $html = file_get_contents("./index.html");
  $response->end($html);
});
$serv->start();

websocket服务器

<?php
//创建websocket服务器
$serv= new swoole_websocket_server("0.0.0.0",9502);

//on

//open 建立连接 $ws 服务器  $request :客户端信息
$serv->on("open",function ($ws,$request){
    var_dump($request);
    $ws->push($request->fd,"welcom\n");

});
//message 发送消息
$serv->on("message",function ($ws,$request){
    echo "message:$request->data";
    $ws->push($request->fd."get it message");
});
//close 关闭连接
$serv->on("close",function ($ws,$request){
    echo "close\n";
});
$serv->start();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值