PHP异步并行网络扩展swoole安装

最近想用PHP写一个聊天网站,于是注意到了swoole这个扩展,看上它就是因为事件驱动异步非阻塞。

Swoole可以广泛应用于互联网、移动通信、企业软件、网络游戏、物联网、车联网、智能家庭等领域。 使用PHP+Swoole作为网络通信框架,可以使企业IT研发团队的效率大大提升,更加专注于开发创新产品。

Swoole底层内置了异步非阻塞、多线程的网络IO服务器。PHP程序员仅需处理事件回调即可,无需关心底层。与Nginx/Tornado/Node.js等全异步的框架不同,Swoole既支持全异步,也支持同步。

Swoole是开源免费的自由软件,授权协议是Apache2.0。企业和开发者均可免费使用Swoole的代码,并且在Swoole之上所作的修改可用于商业产品,无需开源。

以上这段话摘自swoole官网,http://www.swoole.com/

以下是我在Debain系统里的安装过程。我在Ubuntu14.04里是按照官方视频教程的过程,下载源码并本地编译完成的,如果有同学想挑战一下,也可以到http://wiki.swoole.com/wiki/page/230.html去跟着Rango安装。

swoole仅支持Linux/FreeBSD/Mac,如果你使用的是Windows系统,请安装一个虚拟机,VirtualBox/VMWare都可以。然后在虚拟机里安装Linux。
swoole已经加入到PHP的官方扩展库中,所以在Linux系统里只需要执行

pecl install swoole

但是,我在第一次安装的时候遇到了一个问题,提示我本机没有安装phpize,于是

sudo apt-get update
sudo apt-get install php5-dev

再次执行安装命令,接下来又提示我编译错误, 

缺少pcre.h ,于是

sudo apt-get install libpcre3 libpcre3-dev

再次执行安装命令,终于

于是按照提示,在php.ini添加extension=swoole.so

输入php –m 得到以下结果

恭喜你,安装成功了。

 

可以新建一个server.php 的demo测试一下

<?php
    $serv = new swoole_server("0.0.0.0", 9501);
    $serv->on(‘connect‘, function ($serv, $fd){
            echo "Client:Connect.\n";
    });
    $serv->on(‘receive‘, function ($serv, $fd, $from_id, $data) {
            $serv->send($fd, ‘Swoole: ‘.$data);
    });
    $serv->on(‘close‘, function ($serv, $fd) {
            echo "Client: Close.\n";
    });
    $serv->start();

?>

 

执行 php server.php

新开一个终端,使用telnet连接到你的服务器:

telnet 127.0.0.1 9501
> hello world
> Swoole: hello world

如果提示地址冲突,可以更改源代码中的“9051”端口。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。