目录
Swoole 初识,swoole初识
Swoole:重新定义PHP
首页 后端开发 php教程 Swoole 初识,swoole初识_PHP教程

Swoole 初识,swoole初识_PHP教程

Jul 12, 2016 am 08:55 AM
php swoole 初识 官方 定义 并行 异步 高性能

Swoole 初识,swoole初识

官方定义:

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

<?<span>php

 

</span><span>class</span><span> Server

{

 

    </span><span>private</span> <span>$serv</span><span>;

 

    </span><span>public</span> <span>function</span><span> __construct()

    {

        </span><span>$this</span>->serv = <span>new</span> swoole_server("0.0.0.0", 9501<span>);

        </span><span>$this</span>->serv->set(<span>array</span><span>(

            </span>'worker_num' => 8,

            'daemonize' => <span>false</span>,

            'max_request' => 10000,

            'dispatch_mode' => 2,

            'debug_mode' => 1<span>

        ));

 

        </span><span>$this</span>->serv->on('Start', <span>array</span>(<span>$this</span>, 'onStart'<span>));

        </span><span>$this</span>->serv->on('Connect', <span>array</span>(<span>$this</span>, 'onConnect'<span>));

        </span><span>$this</span>->serv->on('Receive', <span>array</span>(<span>$this</span>, 'onReceive'<span>));

        </span><span>$this</span>->serv->on('Close', <span>array</span>(<span>$this</span>, 'onClose'<span>));

 

        </span><span>$this</span>->serv-><span>start();

    }

 

    </span><span>public</span> <span>function</span> onStart(<span>$serv</span><span>)

    {

        </span><span>echo</span> "Start\n"<span>;

    }

 

    </span><span>public</span> <span>function</span> onConnect(<span>$serv</span>, <span>$fd</span>, <span>$from_id</span><span>)

    {

        </span><span>$serv</span>->send(<span>$fd</span>, "Hello {<span>$fd</span>}!"<span>);

    }

 

    </span><span>public</span> <span>function</span> onReceive(swoole_server <span>$serv</span>, <span>$fd</span>, <span>$from_id</span>, <span>$data</span><span>)

    {

        </span><span>echo</span> "Get Message From Client {<span>$fd</span>}:{<span>$data</span>}\n"<span>;

    }

 

    </span><span>public</span> <span>function</span> onClose(<span>$serv</span>, <span>$fd</span>, <span>$from_id</span><span>)

    {

        </span><span>echo</span> "Client {<span>$fd</span>} close connection\n"<span>;

    }

 

}

 

</span><span>//</span><span> 启动服务器</span>

<span>$server</span> = <span>new</span> Server();

登录后复制

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

<?<span>php

 

</span><span>class</span><span> Client

{

 

    </span><span>private</span> <span>$client</span><span>;

 

    </span><span>public</span> <span>function</span><span> __construct()

    {

        </span><span>$this</span>->client = <span>new</span><span> swoole_client(SWOOLE_SOCK_TCP);

    }

 

    </span><span>public</span> <span>function</span><span> connect()

    {

        </span><span>if</span> (!<span>$this</span>->client->connect("127.0.0.1", 9501, 1<span>)) {

            </span><span>echo</span> "Error: {<span>$fp</span>->errMsg}[{<span>$fp</span>->errCode}]\n"<span>;

        }

        </span><span>$message</span> = <span>$this</span>->client-><span>recv();

        </span><span>echo</span> "Get Message From Server:{<span>$message</span>}\n"<span>;

 

        </span><span>fwrite</span>(STDOUT, "请输入消息:"<span>);

        </span><span>$msg</span> = <span>trim</span>(<span>fgets</span><span>(STDIN));

        </span><span>$this</span>->client->send(<span>$msg</span><span>);

    }

 

}

 

</span><span>$client</span> = <span>new</span><span> Client();

</span><span>$client</span>->connect();

登录后复制

 

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

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1116382.htmlTechArticleSwoole 初识,swoole初识 官方定义: Swoole:重新定义PHP PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线...
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南

CakePHP 项目配置 CakePHP 项目配置 Sep 10, 2024 pm 05:25 PM

CakePHP 项目配置

CakePHP 日期和时间 CakePHP 日期和时间 Sep 10, 2024 pm 05:27 PM

CakePHP 日期和时间

CakePHP 文件上传 CakePHP 文件上传 Sep 10, 2024 pm 05:27 PM

CakePHP 文件上传

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

CakePHP 路由

讨论 CakePHP 讨论 CakePHP Sep 10, 2024 pm 05:28 PM

讨论 CakePHP

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 快速指南

See all articles