zoukankan      html  css  js  c++  java
  • 初识php异步多线程扩展swoole

    Swoole是一种PHP高级Web开发框架,框架不是为了提升网站的性能,是为了提升网站的开发效率。最少的性能损耗,换取最大的开发效率。利用Swoole框架,开发一个复杂的Web功能,可以在很短的时间内完成。

    官方定义:

    Swoole:重新定义PHP

    PHP的异步、并行、高性能网络通信引擎,使用纯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

    简单案例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    <?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 ";
    }
    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} ";
    }
    public function onClose($serv, $fd, $from_id)
    {
    echo "Client {$fd} close connection ";
    }
    }
    // 启动服务器
    $server = new Server();
    <?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}] ";
    }
    $message = $this->client->recv();
    echo "Get Message From Server:{$message} ";
    fwrite(STDOUT, "请输入消息:");
    $msg = trim(fgets(STDIN));
    $this->client->send($msg);
    }
    }
    $client = new Client();
    $client->connect();

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

    Swoole功能介绍

    包含以下几个特色功能:

    1、 类似ORM的数据查询,提供SQL封装器,让MySQL的SQL与PHP的Array,会话,Cache无缝结合。

    2、App MVC分层结构,有效的程序结构分层,提高程序的可维护性和扩展性,实现低耦合,基于接口开发。

    3、集成大量,实用的功能,比如方便的数据库操作,模板操作,缓存操作,系统配置,表单处理,分页,数据调用,字典操作,上传处理,内容编辑,调试等。

    4、模板-数据反射系统,可以直接在模板中调用数据,提供很多标签,可是无需修改程序,只修改模板,即可实现网站各类更新维护工作。

    另外的几个功能

    1、Swoole包含了大量类,提供众多的功能扩展,基本上Web开发能够用到的功能类,大部分都可以在Swoole框架中找到。

    2、Swoole拥有插件系统,Fckeditor、Adodb、pscws中文分词、中文全文索引系统、最新的Key-Value数据库思想,TokyoTyrant,可以无限扩展框架的功能。

  • 相关阅读:
    opencv学习之米粒分割 #201906121549
    opencv学习之hsv通道分解 #201906101704
    opencv学习之图像滤波预处理 #201906101646
    opencv学习之addWeighted图片打水印 #201906061030
    alpha channel
    rm git commit history
    git 使用学习
    排序算法的c++实现
    leetcode 246 中心对称数问题
    大数打印问题
  • 原文地址:https://www.cnblogs.com/zyiii/p/8822285.html
Copyright © 2011-2022 走看看