swoole_swoolefy - CSDN
swoole 订阅
Swoole是一个面向生产环境的 PHP 异步网络通信引擎,使 PHP 开发人员可以编写高性能的异步并发 TCP、UDP、Unix Socket、HTTP,WebSocket 服务。Swoole 可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。 使用 PHP + Swoole 作为网络通信框架,可以使企业 IT 研发团队的效率大大提升。 [1] 展开全文
Swoole是一个面向生产环境的 PHP 异步网络通信引擎,使 PHP 开发人员可以编写高性能的异步并发 TCP、UDP、Unix Socket、HTTP,WebSocket 服务。Swoole 可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。 使用 PHP + Swoole 作为网络通信框架,可以使企业 IT 研发团队的效率大大提升。 [1]
信息
特    点
可以在很短的时间内完成
类    别
面向生产环境的PHP异步网络通信引擎
运行环境
Linux Windows Mac FreeBSD Unix
中文名
Swoole
性    质
一种PHP高级Web开发框架
目    的
提升网站的开发效率
Swoole简介
Swoole不是一个像Zend Framework、CakePHP、Yii、symfony、ThinkPHP等一样的框架,也不是一个像WordPress、Drupal、Discuz、UChome等开源产品看齐的项目。 Swoole的目标是向Java框架、Ruby On Rails、Python DjangoPylons等一流框架发起挑战。PHP版本支持:PHP5.3+支持的数据库:MS SQL Server、MySQL、IBM DB2、Oracle、Interbase 、SQLite、PostgreSQL、ODBC支持的运行方式:Web、Cli命令行脚本、PHP-GTK GUI。 [2] 
收起全文
精华内容
参与话题
  • Swoole快速入门

    千次阅读 2020-09-05 15:57:02
    swoole介绍 是php的异步.并行.高性能网络通信引擎,提供php异步多线程服务器 异步TCP/UDP网络客户端 异步mysql 异步redis数据库连接池 异步文件读写 异步DNS查询 内置http/websocket服务器端/客户端 swoole功能库...

    文章内容请戳,谢谢! http://zhangzeshan.top

    展开全文
  • Swoole 入门篇(一)

    2019-02-27 12:59:43
    1. Swoole:面向生产环境的 PHP 异步网络通信引擎  本文参看swoole官方文档:地址:https://www.swoole.com/ 特性 Swoole 使用纯 C 语言编写,提供了 PHP 语言的异步多线程服务器,异步 TCP/UDP 网络客户端,...

    1. Swoole:面向生产环境的 PHP 异步网络通信引擎

      本文参看swoole官方文档:地址:https://www.swoole.com/

    特性

    Swoole 使用纯 C 语言编写,提供了 PHP 语言的异步多线程服务器,异步 TCP/UDP 网络客户端,异步 MySQL,异步 Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。

    除了异步 IO 的支持之外,Swoole 为 PHP 多进程的模式设计了多个并发数据结构和IPC通信机制,可以大大简化多进程并发编程的工作。其中包括了并发原子计数器,并发 HashTable,Channel,Lock,进程间通信IPC等丰富的功能特性。

    Swoole2.0 支持了类似 Go 语言的协程,可以使用完全同步的代码实现异步程序。PHP 代码无需额外增加任何关键词,底层自动进行协程调度,实现异步。

    • 安装

      #!/bin/bash
      pecl install swoole
      
    • 2

      HTTP Server

      <?php
      $http = new swoole_http_server("127.0.0.1", 9501);
      
      $http->on("start", function ($server) {
          echo "Swoole http server is started at http://127.0.0.1:9501\n";
      });
      
      $http->on("request", function ($request, $response) {
          $response->header("Content-Type", "text/plain");
          $response->end("Hello World\n");
      });
      
      $http->start();
      
    • 3

      WebSocket Server

      <?php
      $server = new swoole_websocket_server("127.0.0.1", 9502);
      
      $server->on('open', function($server, $req) {
          echo "connection open: {$req->fd}\n";
      });
      
      $server->on('message', function($server, $frame) {
          echo "received message: {$frame->data}\n";
          $server->push($frame->fd, json_encode(["hello", "world"]));
      });
      
      $server->on('close', function($server, $fd) {
          echo "connection close: {$fd}\n";
      });
      
      $server->start();
      
    • 4

      TCP Server

      <?php
      $server = new swoole_server("127.0.0.1", 9503);
      $server->on('connect', function ($server, $fd){
          echo "connection open: {$fd}\n";
      });
      $server->on('receive', function ($server, $fd, $reactor_id, $data) {
          $server->send($fd, "Swoole: {$data}");
          $server->close($fd);
      });
      $server->on('close', function ($server, $fd) {
          echo "connection close: {$fd}\n";
      });
      $server->start();
      
    • 5

      TCP Client

      <?php
      $client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
      $client->on("connect", function($cli) {
          $cli->send("hello world\n");
      });
      $client->on("receive", function($cli, $data){
          echo "received: {$data}\n";
      });
      $client->on("error", function($cli){
          echo "connect failed\n";
      });
      $client->on("close", function($cli){
          echo "connection close\n";
      });
      $client->connect("127.0.0.1", 9501, 0.5);
      
    • 6

      Async Redis / HTTP / WebSocket Client

      <?php
      $redis = new Swoole\Redis;
      $redis->connect('127.0.0.1', 6379, function ($redis, $result) {
          $redis->set('test_key', 'value', function ($redis, $result) {
              $redis->get('test_key', function ($redis, $result) {
                  var_dump($result);
              });
          });
      });
      
      $cli = new Swoole\Http\Client('127.0.0.1', 80);
      $cli->setHeaders(array('User-Agent' => 'swoole-http-client'));
      $cli->setCookies(array('test' => 'value'));
      
      $cli->post('/dump.php', array("test" => 'abc'), function ($cli) {
          var_dump($cli->body);
          $cli->get('/index.php', function ($cli) {
              var_dump($cli->cookies);
              var_dump($cli->headers);
          });
      });
      
    • 7

      Tasks

      <?php
      $server = new swoole_server("127.0.0.1", 9502);
      $server->set(array('task_worker_num' => 4));
      $server->on('receive', function($server, $fd, $reactor_id, $data) {
          $task_id = $server->task("Async");
          echo "Dispath AsyncTask: [id=$task_id]\n";
      });
      $server->on('task', function ($server, $task_id, $reactor_id, $data) {
          echo "New AsyncTask[id=$task_id]\n";
          $server->finish("$data -> OK");
      });
      $server->on('finish', function ($server, $task_id, $data) {
          echo "AsyncTask[$task_id] finished: {$data}\n";
      });
      $server->start();

     

    展开全文
  • Swoole 从0开始搭建直播平台

    千次阅读 热门讨论 2018-05-11 18:33:07
    Swoole开发基础。 以下所有安装操作 全部基于Linux。(centos 6.8)版本. php7源码编译安装方法(6个步骤)1、先去www.php.net下载最新的php7版本.(建议用php7);2、下载下来然后解压:tar -xjvf 压缩包名字,然后yum ...

    Swoole开发基础(必须熟悉php、Linux、js、html)。

              以下所有安装操作 全部基于Linux。(centos 6.8)版本.


     php7源码编译安装方法(6个步骤)

    1、先去www.php.net下载最新的php7版本.(建议用php7); wget http://am1.php.net/distributions/版本
    wget http://am1.php.net/get/php-7.2.5.tar.bz2
    2、下载下来然后解压:tar  -xjvf  压缩包名字,然后yum install gcc   (必须有gcc)
    3、 解压下来之后cd进去 然后输入命名: ./configure --prefix=/home/work/study/soft/php 。--prefix的参数是指定安装到某个目录,  (可不写。)出现此图代表安装成功。

    4、出现上图这个提示信息, 然后 输入命令 make;进行编译,出现这种提示信息 代表安装成功。安装成功之后 在输入命名:make test 命令。等待检测完成(可跳过, 但不建议)。
    5、检测完成之后 输入命令:make install 。 出现下图信息 代表安装成功
    6、然后看第三步(第三步的prefix参数后面为你安装的地址。) 进入到你安装的php路径。 然后做一个简单的测试:在当前目录下vi test.php  见下图
    然后保存。输入命令: ./bin/php test.php 可看到下图效果(返回了时间戳):

              简化PHP执行命令(免去./bin/php test.php 直接 php test.php)

    1、vi ~/.bash_profile  然后在最后一行加上alias php = /home/work/study/soft/php/bin/php(可见下图)


    2、然后在 输入命令 source ~/.bash_profile 就可以啦~ 输入 php -v(查看版本信息。)测试一下~ 

    开始源码编译安装Swoole(Linux当前在哪个目录就安装到那个目录,建议先返回/home)

    1、www.swoole.com进官方(见图)

    点击复制

    2、回到Linux服务器内 输入 git clone https://gitee.com/swoole/swoole.git(这里填写你刚才第一步复制的内容) 。 如果报错. 那么就代表你没有安装git  (可以用yum install git 来安装一下)  然后再次输入git clone https://gitee.com/swoole/swoole.git 就开始克隆。

    3、克隆完成之后 保存到你所在目录 可通过ls命令 看到。然后输入/home/work/study/soft/php/bin/phpize(这里写你自己安装的php目录。  ) 命令 如果和此图  不一样 那么就 代表缺少autoconf(yum install autoconf 来进行安装,安装完autoconf 重新 执行一下 即可。)执 行完成命令之后 在看 swoole目录 会发现多了很多文件。

    4、然后输入./configure --with-php-config=/home/work/study/soft/php/bin/php-config(这里填写你自己的php安装路径) 此命令来编译  编译完成之后 再输入命令: make 进行构建 出现此图 代表成功, 然后自行 输入命令 make test 检测 一下。 检测完成之后输入make install 命令 进行安装。出现此图 代表成功。

    5、安装完成之后, 进入 cd /home/swoole/examples/server(这里填写你的Swoole目录)   进入之后 ls查看文件, 可以看到echo.php文件。然后 php echo.php  来运行这个文件,  然后会出现报错。 可以通过这种方式解决:cd /home/work/study/soft/php/lib(这里填写你自己的php安装目录。) 进去之后 vim php.ini 然后加上一句:extension=swoole

    保存退出,然后再进入 cd /home/swoole/examples/server 这个目录。 php echo.php 可以看到 不报错了。   可以在打开一个终端 输入netstat -anp | grep 9501  可以查看到 有信息存在,  (9501是swool开启的端口)。  表示Swoole 搭建成功。



     





    展开全文
  • Swoole是什么? Swoole是一个国内开源的C语言编写的扩展,Swoole是php的一个异步、并行、高性能的网络通信引擎。 可以用Swoole做一些想http、websocket的服务器,Swoole提供了异步多线程服务器,支持协程。...

    Swoole是什么?

        Swoole是一个国内开源的C语言编写的扩展,Swoole是php的一个异步、并行、高性能的网络通信引擎。

        可以用Swoole做一些想http、websocket的服务器,Swoole提供了异步多线程服务器,支持协程。Swoole可以广泛运用于:互联网、网络游戏、在线直播、聊天室。

        使用PHP+Swoole可以是我们的开发效率大大提升,并且性能非常好。

     

    下面我会持续分享,你会和我一起学到swoole的这些详细技术:

    1、安装php7、swoole,及使php7支持swoole

    2、网络通信引擎(TCP、UDP、HTTP、Webservice服务器等)

    3、swoole高级知识:消息队列、进程协程内容、毫秒定时器、异步task任务、异步文件、异步redis、异步mysql等。

    4、实战训练:系统调优、系统监控、聊天室模块、赛事直播等等。

    展开全文
  • swoole坑哭的PHP程序员

    万次阅读 2017-04-17 16:41:11
    本文主要记录一下学习swoole的过程、填过的坑以及swoole究竟有多么强大! 首先说一下对swoole的理解:披着PHP外衣的C程序。很多PHPer朋友看到swoole提供的强大功能、外界对其的崇拜便跃跃欲试的安装、调 试其demo、...
  • 一键升级Swoole为最新版本

    千次阅读 2019-07-10 17:12:14
    食用说明: 将帖子附件压缩包中的shell脚本移动到 /www/server/panel/install目录下 ...chmod +x swoole4.sh bash swoole4.sh install 72 https://pecl.php.net/package/swoole swoole-4.3.2.tgz ...
  • Swoole学习-Swoole入门指南

    千次阅读 2019-04-23 07:08:20
    初识Swoole Swoole官网:https://www.swoole.com/ Swoole官方文档:https://wiki.swoole.com/ 预备相关知识素材推荐 入门书籍:《tcp/ip网络编程(尹圣雨 韩)》。 深入书籍:《unix环境高级编程(中文第三...
  • swoole-swoole是什么能做什么

    万次阅读 2018-04-18 18:49:17
    项目中实现异步大文件传输的功能,在服务端使用了swoole,可以高效方便的实现,很多的项目其实也在用到swoole,突然间觉得swoole已经非常强大,对于phper来说,这是非常好的,可能大家都觉高大上了。接下来将会以...
  • swoole - 简介

    2019-01-25 11:05:56
    一、前言 最近在做物联网智能音箱的项目,遇到一个需求:中国移动杭研院想要减轻他们服务器自身的负担,要求音箱厂商使用自己的服务器来管理自己的音箱设备。大体的控制流程是,手机上的合家亲app对音箱设备有控制...
  • 什么是进程? 进程就是应用程序的启动实例。独立的文件资源,数据资源,内存空间。 什么是线程? 线程属于进程,是程序的执行者。一个进程至少包含一个主线程,也可以有更多的子线程。...Swoole4 由于是
  • phpstorm增加swoole自动提示

    万次阅读 2017-09-28 23:38:25
    安装完swoole扩展后,准备敲个例子尝试一下,发现所有的swoole函数全部反白,没有代码提示,看起来很难受,搜索了一番,总算是解决掉这个问题了。下载swoole-ide-helper-engit clone ...
  • Mac MAMP Pro 环境安装 swoole扩展

    万次阅读 2020-01-03 13:27:08
    下载并解压 wget https://github.com/swoole/swoole-src/archive/v4.4.1.tar.gz tar -zxvf swoole-src-4.4.1.tar.gz 进入文件夹执行编译 cd swoole-src-4.4.1 /Applications/MAMP/bin/php/php7....
  • workerman和swoole的区别

    万次阅读 2017-02-20 21:37:25
    workerman和swoole都是php socket 服务器框架,都支持长连接、tcp和udp、websocket、异步、分布式部署等 workerman纯php写的,swoole是php的c扩展,性能肯定更高,百度、腾讯不少产品的server就是基于swo
  • Windows 下安装 swoole 具体步骤

    万次阅读 多人点赞 2015-11-19 13:53:25
    (*^__^*) 嘻嘻…… 挺累的。
  • phpstudy 安装 swoole扩展

    千次阅读 2015-01-07 16:55:56
    首先安装phpstudy 这一步大家可以到http://lamp.phpstudy.net 来安装,整个流程大约需要50-90分钟 看你的cpu了,cpu性能越好的越快 然后下载swoole扩展 下载地址 ...解压出来tar -xvzf swoole-sr
  • linux服务器安装swoole扩展

    万次阅读 2018-08-23 17:58:46
    swoole只能用在LInux,macos系统上,不能用作Windows系统上 2.0.12版本开始不再支持PHP5   安装方式一:pecl安装 适用于php7.0以上版本 centOS中: #pecl install swoole 报错:-bash: pecl: command not ...
  • swoole给特定用户推消息--基础思路

    千次阅读 2017-10-18 14:11:54
    (1) 用户登录以后,将uid发送给swoole服务 (2 ) swoole服务将uid和fd配对,保存到redis/memache/mysql (3-4) 用户通过对方的uid在redis/memache/mysql里查找配对的fd (5) 用户将uid+fd值+消息发送给swoole...
  • 1、今天在项目里用swoole,不小心在配置里开启了守护进程(即进程在后台一直运行) 2、结果调试socket代码的时候,结束了进程重新开启,一直显示端口被占用 3、此时就算是关闭了terminal命令运行窗口,重新打开...
  • 安装easyswoole(宝塔坑)

    千次阅读 2019-03-05 20:52:43
    首先一点,现在宝塔默认的swoole版本是不支持最新版的easyswoole的,而且还不能升级( pecl upgrade swoole ),所以只能自己编辑安装的swoole最新版(swoole-4.2.13),才支持! 那么开始: 第一步:安装...
  • 查看已安装的swoole的版本

    千次阅读 2020-08-07 10:59:57
    方法一 php --ri swoole 方法二通过phpinfo的方法
1 2 3 4 5 ... 20
收藏数 11,476
精华内容 4,590
关键字:

swoole