初识PHP中的Swoole

 更新时间:2016年04月05日 09:08:02   转载 作者:wangyulu  
Swoole是一种PHP高级Web开发框架,框架不是为了提升网站的性能,是为了提升网站的开发效率。最少的性能损耗,换取最大的开发效率

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

简单案例:

<?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
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功能介绍

包含以下几个特色功能:

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,可以无限扩展框架的功能。

相关文章

  • 深入解析php之apc

    深入解析php之apc

    本篇文章是对php中apc的使用进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • Symfony2创建基于域名的路由相关示例

    Symfony2创建基于域名的路由相关示例

    这篇文章主要介绍了Symfony2创建基于域名的路由,结合实例形式分析了Symfony2路由的创建技巧,需要的朋友可以参考下
    2016-11-11
  • Laravel框架搜索分页功能示例

    Laravel框架搜索分页功能示例

    这篇文章主要介绍了Laravel框架搜索分页功能,涉及Laravel框架数据库查询、搜索及分页功能实现技巧,需要的朋友可以参考下
    2019-02-02
  • PHP 超链接 抓取实现代码

    PHP 超链接 抓取实现代码

    因为最近要做一个类似专业搜索引擎的东西,需要抓取网页的所有超链接。大家帮忙测试一下子,下面的代码是否可以针对所有的标准超链接。
    2009-06-06
  • Codeigniter实现发送带附件的邮件

    Codeigniter实现发送带附件的邮件

    这篇文章主要介绍了Codeigniter实现发送带附件的邮件的方法,涉及Codeigniter中attach方法的使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • yii操作cookie实例简介

    yii操作cookie实例简介

    这篇文章主要介绍了yii操作cookie实例,需要的朋友可以参考下
    2014-07-07
  • Laravel5.5 动态切换多语言的操作方式

    Laravel5.5 动态切换多语言的操作方式

    今天小编就为大家分享一篇Laravel5.5 动态切换多语言的操作方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • PHP实现数据库的增删查改功能及完整代码

    PHP实现数据库的增删查改功能及完整代码

    这篇文章主要介绍了PHP实现数据库的增删查改功能及完整代码,需要的朋友可以参考下
    2018-04-04
  • thinkphp3.2实现上传图片的控制器方法

    thinkphp3.2实现上传图片的控制器方法

    这篇文章主要介绍了thinkphp3.2实现上传图片的控制器方法,结合实例形式分析了thinkPHP图片文件上传相关的文件类型判断,文件路径及相关属性操作技巧,需要的朋友可以参考下
    2016-04-04
  • PHP封装返回Ajax字符串和JSON数组的方法

    PHP封装返回Ajax字符串和JSON数组的方法

    下面小编就为大家带来一篇PHP封装返回Ajax字符串和JSON数组的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02

最新评论