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

简单案例:

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
51
52
53
54
55
56
57
58
59
60
61
<?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,可以无限扩展框架的功能。

转载于:https://www.cnblogs.com/zyiii/p/8822285.html

初识php异步多线程扩展swoole相关推荐

  1. 异步多线程之入门必知

    下一篇:异步多线程之入Thread 简介 今天来谈谈异步多线程,做网站服务的同学都知道,Web 应用是天生的异步多线程,无论做 Winform.WPF.Webform 等,异步多线程的应用是非常广泛的 ...

  2. 异步多线程(五)多线程异常处理

    异步多线程(五)多线程异常处理 参考文章: (1)异步多线程(五)多线程异常处理 (2)https://www.cnblogs.com/JohnTang/p/11010357.html (3)http ...

  3. Windows下PHP多线程扩展pthreads的安装

    线程都需要开启线程安全 及(ZTS版本) 不是(NTS版本) phpinfo(); Thread Safety 要为 enabled pthreads扩展安装步骤 1.查看phpinfo() 获取PH ...

  4. 【Python】单线程异步多线程多进程实例

    上一篇文章主要介绍了多任务场景下单线程异步.多线程.多进程如何选择,链接:多任务场景下单线程异步多线程多进程 这里主要通过三个实例去验证一下简单的多任务场景下,三种方式的耗时情况,假设有10个互不关联 ...

  5. Task/Parallel实现异步多线程

    代码: #region Task 异步多线程,Task是基于ThreadPool实现的{//TestClass testClass = new TestClass();//Action<obje ...

  6. python异步多线程

    Python异步多线程 首先,我们需要先明白同步和异步的区别: 同步:同步是指一个进程在执行某个请求的时候,如果该请求需要一段时间才能返回信息,那么这个进程会一直等待下去,直到收到返回信息才继续执行下 ...

  7. Springboot异步多线程编程

    文章目录 一.基础知识 二.什么时候用同步&异步 三.什么时候需要使用多线程 四.springboot异步多线程编程实现 一.基础知识 同步:同步就是指一个进程在执行某个请求的时候,若该请求需 ...

  8. PHP多线程扩展-parallel(一)

    PHP多线程扩展-parallel(一) php其实也是有多线程的,比较有名的就是pthread 扩展,但是当我打开官网想学习一下,结果. 既然官方都放弃他了,那就看看parallel吧,百度谷歌了一 ...

  9. 同步与异步多线程的区别

    先需要讲解一下计算机的基本概念: 进程:一个程序在操作系统上运行时,占用操作系统的资源,起名叫进程. 线程:线程是程序执行的最小单位,进程在执行任何一个操作或者响应,都是由线程完成的,执行过程中,使用 ...

最新文章

  1. Linux 问题解决 :/lib/systemd/systemd-journald 占用内存过高
  2. 10 i lt shell的if_shell学习(10)- if的使用
  3. 生成网页没有标题_网页设计公司有哪些?用这个快速建站!
  4. LSTM(序列标注,自实现)
  5. gulpfile笔记
  6. python watchdog_Python watchdog
  7. 轻量级持久存储系统 MemcacheDB
  8. 蒋江伟:代码是我们最重要的资产!
  9. 王道考研操作系统笔记(第一章)附:王道考研408所有PPT和思维导图
  10. arcgis地理空间数据库学习记录02-地理数据库迁移
  11. 1.8安装大华相机SDK及测试
  12. 常用MAVROS话题和服务
  13. 深度:从 Office 365 新图标来看微软背后的设计新理念
  14. EasyAdmin极简社区论坛系统源码
  15. 这些低代码平台,你是否知悉?
  16. 河北最新建筑施工架子工(建筑特种作业)机考题库及建筑架子工试题答案解析
  17. uni-app打包h5后chunk-vendors.js文件大导致页面访问缓慢解决方案
  18. Chrome浏览器占用内存过高解决办法
  19. 红外线气体分析仪的工作原理
  20. 理想职业计算机程序英语作文,理想职业英文作文120词左右,作为演讲用,要求演讲2到3分钟....

热门文章

  1. 马斯克公布火星太空船最新照片:施工已达最后一步,10月有望正式推出
  2. java版b2b2c社交电商springcloud分布式微服务 (九)服务链路追踪(Spring Cloud Sleuth)...
  3. Go开发之路 -- 指针类型
  4. ubuntu16.04忘了root密码
  5. NopCommerce架构分析之八------多语言
  6. Android 将ARGB图片转换为灰度图
  7. VIM 命令使用大全
  8. [一文一命令]tail命令详解
  9. 请问这个解法的时间复杂度怎么分析?谢谢!
  10. shape(15,)与(15,1)的区别