dmz社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12134|回复: 110

[php框架] 初识Swoole 附源码

  [复制链接]
  • TA的每日心情

    2024-11-19 20:46
  • 签到天数: 244 天

    [LV.8]以坛为家I

    4434

    主题

    1459

    帖子

    1万

    积分

    会|员

    Rank: 9Rank: 9Rank: 9

    积分
    10734
    发表于 2018-12-27 01:10:09 | 显示全部楼层 |阅读模式

    本站资源全部免费,回复即可查看下载地址!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    官方定义:
    Swoole:重新定义PHPPHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。
    Swoole可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网、车联网、智能家居等领域。 使用PHP+Swoole作为网络通信框架,可以使企业IT研发团队的效率大大提升,更加专注于开发创新产品。

    swoole 扩展安装及案例来源:http://wiki.swoole.com/wiki/page/6.html

    简单案例:
    [PHP] 纯文本查看 复制代码
    <?php
    
    class Server
    {
    
        private $serv;
    
        public function __construct()
        {
            $this->serv = new swoole_server("0.0.0.0", 9501);
            $this->serv->set(array(
                'worker_num' => 8,
                'daemonize' => false,
                'max_request' => 10000,
                'dispatch_mode' => 2,
                'debug_mode' => 1
            ));
    
            $this->serv->on('Start', array($this, 'onStart'));
            $this->serv->on('Connect', array($this, 'onConnect'));
            $this->serv->on('Receive', array($this, 'onReceive'));
            $this->serv->on('Close', array($this, 'onClose'));
    
            $this->serv->start();
        }
    
        public function onStart($serv)
        {
            echo "Start\n";
        }
    
        public function onConnect($serv, $fd, $from_id)
        {
            $serv->send($fd, "Hello {$fd}!");
        }
    
        public function onReceive(swoole_server $serv, $fd, $from_id, $data)
        {
            echo "Get Message From Client {$fd}:{$data}\n";
        }
    
        public function onClose($serv, $fd, $from_id)
        {
            echo "Client {$fd} close connection\n";
        }
    
    }
    
    // 启动服务器
    $server = new Server();


    [PHP] 纯文本查看 复制代码
    <?php
    
    class Client
    {
    
        private $client;
    
        public function __construct()
        {
            $this->client = new swoole_client(SWOOLE_SOCK_TCP);
        }
    
        public function connect()
        {
            if (!$this->client->connect("127.0.0.1", 9501, 1)) {
                echo "Error: {$fp->errMsg}[{$fp->errCode}]\n";
            }
            $message = $this->client->recv();
            echo "Get Message From Server:{$message}\n";
    
            fwrite(STDOUT, "请输入消息:");
            $msg = trim(fgets(STDIN));
            $this->client->send($msg);
        }
    
    }
    
    $client = new Client();
    $client->connect();


    分别打开两个终端输入:php server.php  php client.php 即可看到效果!

    如果想要深入学习Swoole可以访问:https://www.456jz.com/search.php?mod=forum&searchid=164&orderby=lastpost&ascdesc=desc&searchsubmit=yes&kw=swoole


    回复

    使用道具 举报

    该用户从未签到

    24

    主题

    7885

    帖子

    1019

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1019

    发表于 2018-12-27 19:09:04 | 显示全部楼层
    过来看看的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-10-6 13:54
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    32

    主题

    7792

    帖子

    1135

    积分

    荣誉会员

    积分
    1135

    发表于 2018-12-27 21:38:15 | 显示全部楼层
    有竞争才有进步嘛
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    33

    主题

    7990

    帖子

    1018

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1018

    发表于 2018-12-28 16:21:08 | 显示全部楼层
    小手一抖,钱钱到手!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    1696571648
  • 签到天数: 8 天

    26

    主题

    7950

    帖子

    902

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    902

    发表于 2018-12-28 17:52:13 | 显示全部楼层
    有道理。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    7704

    帖子

    1025

    积分

    技冠群雄

    Rank: 6Rank: 6

    积分
    1025

    发表于 2018-12-30 13:55:52 | 显示全部楼层
    路过,学习下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    26

    主题

    8093

    帖子

    1091

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1091

    发表于 2018-12-31 20:57:11 | 显示全部楼层
    看帖回帖是美德!:lol
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    7588

    帖子

    1153

    积分

    技冠群雄

    Rank: 6Rank: 6

    积分
    1153

    发表于 2019-1-5 11:56:48 | 显示全部楼层
    学习了,谢谢分享、、、
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    3508

    帖子

    -6

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    -6

    发表于 2019-1-7 16:48:55 | 显示全部楼层
    过来看看的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    29

    主题

    7878

    帖子

    1075

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1075

    发表于 2019-1-8 01:23:52 | 显示全部楼层
    相当不错,感谢无私分享精神!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|小黑屋|本站代理|dmz社区

    GMT+8, 2024-12-23 16:35 , Processed in 0.162566 second(s), 42 queries .

    Powered by Discuz! X3.4 Licensed

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表