初识PHP中的Swoole


Posted in PHP onApril 05, 2016

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 相关文章推荐
php 用sock技术发送邮件的函数
Jul 21 PHP
linux命令之调试工具strace的深入分析
Jun 03 PHP
php时区转换转换函数
Jan 07 PHP
CodeIgniter实现更改view文件夹路径的方法
Jul 04 PHP
php实现概率性随机抽奖代码
Jan 02 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
Feb 10 PHP
PHP解耦的三重境界(浅谈服务容器)
Mar 13 PHP
thinkPHP5.0框架自动加载机制分析
Mar 18 PHP
php读取本地json文件的实例
Mar 07 PHP
bindParam和bindValue的区别以及在Yii2中的使用详解
Mar 12 PHP
PHP上传文件及图片到七牛的方法
Jul 25 PHP
php7下的filesize函数
Sep 30 PHP
PHP中file_exists使用中遇到的问题小结
Apr 05 #PHP
PHP读取大文件的多种方法介绍
Apr 04 #PHP
PHP如何将XML转成数组
Apr 04 #PHP
php自动加载方式集合
Apr 04 #PHP
php文件上传的两种实现方法
Apr 04 #PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
Apr 04 #PHP
PHP版本的选择5.2.17 5.3.27 5.3.28 5.4 5.5兼容性问题分析
Apr 04 #PHP
You might like
WINXP下apache+php4+mysql
2006/11/25 PHP
php获取文件名后缀常用方法小结
2015/02/24 PHP
学习php设计模式 php实现状态模式
2015/12/07 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
php创建类并调用的实例方法
2019/09/25 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
读jQuery之十二 删除事件核心方法
2011/07/31 Javascript
js分解url参数(面向对象-极简主义法应用)
2012/08/09 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
2015/09/30 Javascript
第一章之初识Bootstrap
2016/04/25 Javascript
jquery获取复选框的值的简单实例
2016/05/26 Javascript
javascript编程开发中取色器及封装$函数用法示例
2017/08/09 Javascript
Vue.js仿微信聊天窗口展示组件功能
2017/08/11 Javascript
Vue组件之全局组件与局部组件的使用详解
2017/10/09 Javascript
webpack 开发和生产并行设置的方法
2018/11/08 Javascript
vue项目部署到nginx/tomcat服务器的实现
2019/08/26 Javascript
Vuex实现购物车小功能
2020/08/17 Javascript
angular共享依赖的解决方案分享
2020/10/15 Javascript
Python入门篇之函数
2014/10/20 Python
Python文件和目录操作详解
2015/02/08 Python
Python基于Socket实现的简单聊天程序示例
2017/08/05 Python
flask项目集成swagger的方法
2020/12/09 Python
阿迪达斯德国官方网站:adidas德国
2017/07/12 全球购物
香港卓悦化妆品官网:BONJOUR
2017/09/21 全球购物
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
请用用Java代码写一个堆栈
2012/01/26 面试题
下面关于"联合"的题目的输出是什么
2013/08/06 面试题
法律专业个人实习自我鉴定
2013/09/23 职场文书
写给妈妈的道歉信
2014/01/11 职场文书
员工薪酬福利制度
2014/01/17 职场文书
一名老师的自我评价
2014/02/07 职场文书
社区维稳工作方案
2014/06/06 职场文书
大学生撤销处分思想汇报
2014/09/12 职场文书
蛋糕店创业计划书范文
2014/09/21 职场文书
青岛导游词
2015/02/12 职场文书
2019通用版劳动合同范本!
2019/07/11 职场文书