初识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 empty函数判断mysql表单是否为空
Apr 12 PHP
基于PHP生成静态页的实现方法
May 10 PHP
PHP CLI模式下的多进程应用分析
Jun 03 PHP
phpword插件导出word文件时中文乱码问题处理方案
Aug 19 PHP
php格式化日期实例分析
Nov 12 PHP
PHP中round()函数对浮点数进行四舍五入的方法
Nov 19 PHP
php判断linux下程序问题实例
Jul 09 PHP
php+ajax制作无刷新留言板
Oct 27 PHP
PHP之图片上传类实例代码(加了缩略图)
Jun 30 PHP
详解如何实现Laravel的服务容器的方法示例
Apr 15 PHP
laravel 多图上传及图片的存储例子
Oct 14 PHP
php 文件上传至OSS及删除远程阿里云OSS文件
Jul 04 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
DOMXML函数笔记
2006/10/09 PHP
利用static实现表格的颜色隔行显示
2006/10/09 PHP
php执行sql语句的写法
2009/03/10 PHP
深入浅析PHP的session反序列化漏洞问题
2017/06/15 PHP
php生成word并下载代码实例
2019/03/15 PHP
获取服务器传来的数据 用JS去空格的正则表达式
2012/03/26 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
2012/10/11 Javascript
JavaScript仿商城实现图片广告轮播实例代码
2016/02/06 Javascript
微信小程序  Mustache语法详细介绍
2016/10/27 Javascript
jquery自定义显示消息数量
2017/12/19 jQuery
React+Webpack快速上手指南(小结)
2018/08/15 Javascript
微信小程序动画(Animation)的实现及执行步骤
2018/10/28 Javascript
Weex开发之地图篇的具体使用
2019/10/16 Javascript
nodejs实现的http、https 请求封装操作示例
2020/02/06 NodeJs
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
Python实现简单的代理服务器
2015/07/25 Python
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
Python实现多级目录压缩与解压文件的方法
2018/09/01 Python
centos 安装Python3 及对应的pip教程详解
2019/06/28 Python
Apache,wsgi,django 程序部署配置方法详解
2019/07/01 Python
Python Matplotlib 基于networkx画关系网络图
2019/07/10 Python
浅谈Pytorch中的torch.gather函数的含义
2019/08/18 Python
Python模块汇总(常用第三方库)
2019/10/07 Python
Pycharm 安装 idea VIM插件的图文教程详解
2020/02/21 Python
Python自动登录QQ的实现示例
2020/08/28 Python
科颜氏美国官网:Kiehl’s美国
2017/01/31 全球购物
德国健康生活方式网上商店:Landkaufhaus Mayer
2019/03/12 全球购物
英国领先的电视购物零售商:Ideal World
2019/03/18 全球购物
通用求职信范文模板分享
2013/12/27 职场文书
家长对孩子评语
2014/01/30 职场文书
青春演讲稿范文
2014/05/08 职场文书
竞选班干部演讲稿400字
2014/08/20 职场文书
课前一分钟演讲稿
2014/08/26 职场文书
新闻通讯稿范文
2015/07/22 职场文书
《金色的草地》教学反思
2016/02/17 职场文书