Swoole 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Swoole 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 Apache2.0
开发语言 C/C++ PHP
操作系统 跨平台
软件类型 开源软件
开发厂商
地区 国产
提 交 者 matyhtf
适用人群 未知
收录时间 2014-03-03

软件简介

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

Swoole底层内置了异步非阻塞、多线程的网络IO服务器。PHP程序员仅需处理事件回调即可,无需关心底层。与Nginx/Tornado/Node.js等全异步的框架不同,Swoole既支持全异步,也支持同步。

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

Swoole从2.0版本开始支持了内置协程,可以使用完全同步的代码实现异步程序。PHP代码无需额外增加任何关键词,底层自动进行协程调度,实现异步。

Swoole可以广泛应用于互联网、移动通信、企业软件、网络游戏、物联网、车联网、智能家庭等领域。 使用PHP+Swoole作为网络通信框架,可以使企业IT研发团队的效率大大提升,更加专注于开发创新产品。

Swoole是开源免费的自由软件,授权协议是Apache2.0。企业和个人开发者均可免费使用Swoole的代码,并且在Swoole之上所作的修改可用于商业产品,无需开源(注:必须保留原作者的版权声明)。

Server

$serv = new Swoole\Server("127.0.0.1", 9501);
$serv->on('connect', function ($serv, $fd){
    echo "Client:Connect.\n";
});
$serv->on('receive', function ($serv, $fd, $from_id, $data) {
    $serv->send($fd, 'Swoole: '.$data);
    $serv->close($fd);
});
$serv->on('close', function ($serv, $fd) {
    echo "Client: Close.\n";
});
$serv->start();

Http服务器

$http = new Swoole\Http\Server("127.0.0.1", 9502);

$http->on("start", function ($server) {
    echo "Swoole http server is started at http://127.0.0.1:9502\n";
});

$http->on("request", function ($request, $response) {
    $response->header("Content-Type", "text/plain");
    $response->end("Hello Swoole\n");
});

$http->start();

WebSocket服务器

$serv = new Swoole\Websocket\Server("127.0.0.1", 9503);

$serv->on('Open', function($server, $req) {
    echo "connection open: ".$req->fd;
});

$serv->on('Message', function($server, $frame) {
    echo "message: ".$frame->data;
    $server->push($frame->fd, json_encode(["hello", "world"]));
});

$serv->on('Close', function($server, $fd) {
    echo "connection close: ".$fd;
});

$serv->start();

Channel

Co\run(function(){
    //使用Channel进行协程间通讯
    $chan = new Swoole\Coroutine\Channel(1);
    Swoole\Coroutine::create(function () use ($chan) {
        for($i = 0; $i < 100000; $i++) {
            co::sleep(1.0);
            $chan->push(['rand' => rand(1000, 9999), 'index' => $i]);
            echo "$i\n";
        }
    });
    Swoole\Coroutine::create(function () use ($chan) {
        while(1) {
            $data = $chan->pop();
            var_dump($data);
        }
    });
});
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (20)

加载中
搞这些玩意,不如直接换语言,比如Go, Node.js
04/23 11:36
回复
举报
你还是好好学习吧
09/03 13:23
回复
举报

引用来自“eechen”的评论

很多人都喜欢吐槽Swoole的文档,个人认为 #Swoole# 项目有必要出书,比如书名可以是: 《高性能PHP7网络编程:Swoole权威指南》 内容介绍如何使用Swoole进行开发,项目实例可以是开发一个基于Web的即时通讯软件,高级部分还可以加入如何使用C开发PHP扩展。
你这种想法好。但是怎么不考虑你去写。eechen不是php 大佬吗
2018/11/20 08:57
回复
举报
出书就算了,容易过时
03/31 15:02
回复
举报
swoole都全协程化了,还async/await,逗我呢
2018/11/16 10:32
回复
举报
PHP缺乏async/await语法糖会导致使用#Swoole#陷入Callback Hell
2018/06/14 18:21
回复
举报
打分: 力荐
虽然不用php,还是支持
2018/06/14 18:19
回复
举报
只有swoole才可以救php!
2018/04/10 19:50
回复
举报
打分: 还行
还是回归PHP7.2的好
2018/01/30 17:02
回复
举报
折腾了几天在FreeBSD上安装 swoole pecl还是源码编译都死活安装不上,放弃了,不知道是不是韩总不支持FreeBSD?#Swoole#
2017/09/11 09:10
回复
举报
很多人都喜欢吐槽Swoole的文档,个人认为 #Swoole# 项目有必要出书,比如书名可以是: 《高性能PHP7网络编程:Swoole权威指南》 内容介绍如何使用Swoole进行开发,项目实例可以是开发一个基于Web的即时通讯软件,高级部分还可以加入如何使用C开发PHP扩展。
2017/08/06 22:34
回复
举报
很多人都喜欢吐槽Swoole的文档,个人认为 #Swoole# 项目有必要出书,比如书名可以是: 《高性能PHP网络编程:Swoole权威指南》 内容介绍如何使用Swoole进行开发, 项目实例可以是开发一个基于Web的即时通讯软件, 高级部分还可以加入如何使用C开发PHP扩展。
2017/08/06 22:33
回复
举报
更多评论
发表于开发技能专区
10/26 19:51

Swoole v4.5.6 版本发布,新增零拷贝 JSON 或 PHP 反序列化

Swoole v4.5.6 版本已发布,底层增加了2个特殊的函数 swoole_substr_json_decode swoole_substr_unserialize 具体有什么用呢?查看Swoole 4.5.6 支持零拷贝 JSON 或 PHP 反序列化 本篇只是说明一下更新日志: 新增 API 新增 swoole_substr_unserialize 和 swoole_substr_json_decode (#3762) (@matyhtf) 增强 修改 Coro...

8
1
发表于开发技能专区
10/22 18:26

Swoole 4.5.6 支持零拷贝 JSON 或 PHP 反序列化

在最新的4.5.6开发分支中,底层增加了2个特殊的函数: swoole_substr_json_decode swoole_substr_unserialize 这里为什么要增加这两个函数呢?有这样一种场景。使用Swoole\Server实现RPC服务,在EOF协议或长度协议通信方式下,一个包可能有3部分组成。 $packet = $header + $body + $footer 通常$header和$footer比较小...

15
2
发表于开发技能专区
10/15 09:46

Swoole v4.5.5 版本发布,增加配置项检测

此版本增加了配置项检测功能,如果设置了不是 Swoole 提供的选项,会产生一个 Warning。 PHP Warning: unsupported option [foo] in @swoole-src/library/core/Server/Helper.php Copy to clipboardErrorCopied $http = new Swoole\Http\Server('0.0.0.0', 9501); $http->set(['foo' => 'bar']); $http->on('...

4
5
发表于服务端专区
09/02 18:25

Swoole v4.5.3 版本发布

新增 API 增加 Swoole\Process\ProcessManager (swoole/library#88f147b) (@huanghantao) 增加 ArrayObject::append, StringObject::equals (swoole/library#f28556f) (@matyhtf) 增加 Coroutine::parallel (swoole/library#6aa89a9) (@matyhtf) 增加 CoroutineBarrier (swoole/library#2988b2a) (@matyhtf) 增强 增加 ...

9
0
发表于AI & 大数据专区
09/02 18:23

Swoole v4.4.20 版本发布

由于还存在大部分用户依旧在使用 v4.4.x 的版本,我们决定延长 v4.4.x 分支的维护周期,修复在主干版本发现的会导致 v4.4.x 版本产生错误的 BUG,同时会有专门的 Release Manager 负责 v4.4.x 分支的版本发布,直到用户平稳过度到新版本。 v4.4.20,这是一个 BUG 修复版本, 没有任何向下不兼容改动 修复 修复在设置了 di...

3
0
发表于软件架构专区
05/11 20:32

Swoole v4.5.1 版本发布

v4.5.1,这是一个 BUG 修复版本, 补充了本应在v4.5.0引入的 System 文件函数废弃标记。 增强 支持 hook 下的 socket_context 的 bindto 配置 (#3275) (#3278) (@codinghuang) 支持 client::sendto 自动 dns 解析地址 (#3292) (@codinghuang) Process->exit(0)将会直接导致进程退出, 若要执行 shutdown_functions 再退出请...

1
1
发表于服务端专区
04/26 14:39

Swoole 4.5 发布,新增多项新特性

4.5.0 这是一个大版本更新,在 4.5 版本中移除了 4.4 版本中标记为已废弃的特性,大幅优化了异步 Server 消息回调函数的性能。增强了对于 PHP-FPM 互调用的支持。 新增 API DTLS 支持, 现在我们可以此来构建 WebRTC 应用 (#3188) (@matyhtf) 内置的FastCGI客户端, 我们可以通过一行代码来代理请求到 FPM 或是调用 FPM 应...

11
4
发表于开发技能专区
2019/12/17 16:43

Swoole 4.4.13 发布,内置协程连接池

新的API 内置连接池 (例子) (文档) (@twose) 增强 Coroutine\Http\Server支持Websocket帧压缩 (#2943) (@twose) CURL hook 支持 CURLOPT_PUT, CURLOPT_INFILE, CURLOPT_INFILESIZE 等选项 (#2954) (@twose) Socket绑定失败时将会产生错误信息 (@LeiZhang-Hunter) (@twose) (#2972) Socket操作失败时如无必要不再生成不可...

10
2
发表于软件架构专区
2019/07/18 17:49

Swoole 4.4.1 发布,BUG 修复版本

Swoole 4.4.1 发布了,更新内容如下: 修复 修复 SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER,解决SSL下大数据包发送失败 (#2667) (@twose) 修复信号监听功能的BUG (#2675) (@matyhtf) 修复MySQL客户端向下不兼容的变化 (#2674) (@twose) 修复在Server启动之后添加事件失败 (#2673) (@matyhtf) 修复static_handler没有解码url...

6
6
发表于软件架构专区
2019/07/10 12:38

Swoole 4.4 正式版已发布,包含大量更新

Swoole 4.4 正式版已发布,该版本包含大量更新,详细信息如下: 向下不兼容改动 和PHP官方保持一致, 不再支持PHP7.0 (@matyhtf) 移除Serialize模块, 在单独的 ext-serialize 扩展中维护. 废弃原因: 由于PHP内核频繁变更, 导致无法实现稳定可用的模块, 与php serialize相比没有太大差异化定位 移除PostgreSQL模块,在单独...

15
6
发表于开发技能专区
2019/05/20 06:32

swoolefy 4.2.2 发布,基于 swoole 实现的高性能、协程级框架

swoolefy是一个基于swoole实现的轻量级高性能的常驻内存型的API和Web应用服务框架, 高度封装了http,websocket,udp服务器,以及基于tcp实现可扩展的rpc服务, 同时支持composer包方式安装部署项目。基于实用,swoolefy抽象Event事件处理类, 实现与底层的回调的解耦,支持协程调度,同步|异步调用,全局事件注册,心跳...

2
9
发表于AI & 大数据专区
2019/01/21 13:28

Swoole 2019 :化繁为简、破茧成蝶

Swoole开源项目从2012年开始发布第一个版本,到现在已经有近7年的历史。在这七年的时间里: 提交了8821次代码变更 发布了287个版本 收到并解决1161次issue反馈 合并了603次pull request 共有100位开发者贡献代码 在GitHub收获了11940颗星 协程 2018年我们推出了全新的Swoole4版本,在此之前Swoole主要的编程方式还是同步...

17
13
发表于软件架构专区
2018/12/21 09:48

Swoole 4.2.10 发布,BUG 修复版本

增强 重构Coroutine\Http\Client,开发人员不再需要关心连接是否断开,除非网络异常(自动重新连接) 协程切换器添加了一些操作,因为PDO在IO请求时更改了全局BUG处理程序 支持使用内部C函数创建协程 允许跨协程关闭Socket 改进服务器端SSL证书验证 增强协程迭代器和堆栈跟踪 swoole_event_wait始终位于shutdown_function...

8
2
发表于AI & 大数据专区
2018/09/06 13:36

Swoole 4.1 发布,支持原生 Redis/PDO/MySQLi 协程化

Swoole 4.1 发布了,更新如下: 重大新特性 支持 Redis/PDO/MySQLi 从4.1.0版本开始支持了对PHP原生Redis、PDO、MySQLi协程化的支持。 可使用Swoole\Runtime::enableCorotuine()将普通的同步阻塞Redis、PDO、MySQLi操作变为协程调度的异步非阻塞IO Swoole\Runtime::enableCoroutine(); go(function () {     $...

11
7
2018/08/31 21:52

Swoole 4.1.0 发布,支持原生 Redis/PDO/MySQLi 协程化

重大新特性 支持 Redis/PDO/MySQLi 从4.1.0版本开始支持了对PHP原生Redis、PDO、MySQLi协程化的支持。 可使用Swoole\Runtime::enableCorotuine()将普通的同步阻塞Redis、PDO、MySQLi操作变为协程调度的异步非阻塞IO Swoole\Runtime::enableCoroutine(); go(function () {     $redis = new redis;     ...

7
7
发表于开发技能专区
2018/06/14 17:52

Swoole 4.0 正式版发布,面向生产环境的 PHP 协程引擎

Swoole虽然在2016年就支持了协程特性,但由于底层是基于setjmp/longjmp实现的stackless方案。因此在某些场景下,如call_user_func、array_map、__destruct中无法使用协程。大型应用程序中逻辑非常复杂,多人协作的团队中,开发者很容易踩到坑。在禁止场景中使用协程API会出现各种莫名其妙的问题发生。限制了协程的应用范...

35
11
发表于软件架构专区
2018/02/09 16:38

Swoole 2.1 正式版:协程+通道带来全新的 PHP 编程模式

PHP 的异步、并行、高性能网络通信引擎 Swoole 已发布 2.1.0 版本。新版本提供了全新的短名 API,完整支持了协程(Coroutine)+通道(Channel)特性,为 PHP 语言带来了全新的编程模式。Swoole 2.1的API借鉴自Go语言,在此向Go语言开发组致敬。 Coroutine go(function () {     co::sleep(0.5); echo "hello"; ...

39
28
发表于服务端专区
2018/01/08 19:19

Swoole 1.10.0 发布,增加多项新特性

PHP的异步、并行、高性能网络通信引擎 Swoole 已发布 1.10.0 版本。此版本增加了多项新特性。 自动 DNS 解析 新版本的异步客户端不再需要使用 swoole_async_dns_lookup 解析域名了,底层实现了自动域名解析。Client 在执行 connect 方法时可直接传入域名。 $client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SO...

11
6
发表了资讯
2017/11/02 11:13

Swoole 1.9.22 发布,增加 Async::exec 功能

PHP的异步、并行、高性能网络通信引擎 Swoole 已发布 1.9.22 版本。此版本增加了 Async::exec 功能,可以异步执行一条 shell 命令。另外此版本还修复了多个已知问题。 Async::Exec $pid = Swoole\Async::exec("ps aux", function ($result, $status) {     var_dump(strlen($result), $status); }); v...

14
3
发表了资讯
2017/08/29 17:59

Swoole 1.9.19 发布,BUG 修复版本

PHP 的异步、并行、高性能网络通信引擎 Swoole 已发布 1.9.19 版本。此版本修复了多个问题,建议用户升级。 主要更新: 修复Channel::push超过8K时创建临时文件失败导致崩溃的问题 修复MacOS下onShutdown无法执行的问题 自动创建task_tmpdir和upload_tmp_dir目录 修复SSL服务器设置ciphers或ecdh_curve导致崩溃的问题 优...

6
7
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2019/06/06 14:09

一例swoole_process运行swoole_http_server

swoole_process swoole_process('执行的文件路径','文件所需的参数');//利用swoole-process执行一个外部脚本 swoole_process__construct(回调函数, redirect_stdin_stdout, 是否创建进程通信用的管道) 参数redirect_stdin_stdout 值为true子进程返回的结果不输出到屏幕,false输出到屏幕 swoole_process::wait()//程序...

0
0
发表了博客
2018/05/30 14:37

swoole_server的相关属性

在swoole中,一个swoole_server的相关属性可以通过 $serv->set( $array configs ); 函数来配置,这些配置选项使得swoole更加灵活。 示例: $serv = new swoole_server("0.0.0.0", 9501); $serv->set(array( 'worker_num' => 8, 'max_request' => 10000, 'max_conn' => 100000, 'dispatch_mode' => 2, 'debug_mode'=> 1,...

0
0
发表了博客
2018/12/13 14:48

Swoole server配置选项

在swoole中,一个swoole_server的相关属性可以通过 $serv->set( $array configs ); 函数来配置,这些配置选项使得swoole更加灵活。 示例: $serv = new swoole_server("0.0.0.0", 9501); $serv->set(array( 'worker_num' => 8, 'max_request' => 10000, 'max_conn' => 100000, 'dispatch_mode' =>...

0
0
发表了博客
2019/05/05 15:09

swoole之建立 tcp server

一、swoole的安装 参照官网:https://wiki.swoole.com/wiki/page/6.html 二、代码部分 服务端: <?php $host = "127.0.0.1"; $port = 9501; $mode = SWOOLE_PROCESS; // 多进程模式 默认 $sock_type = SWOOLE_SOCK_TCP; // 创建tcp socket 默认 //创建Server对象,监听 127.0.0.1:9501端口 $serv = new swoole_...

0
0
发表了博客
2018/03/26 10:03

Swoole server函数列表(转载)

swoole_server::__construct swoole_server::set swoole_server::on swoole_server::addlistener swoole_server::handler swoole_server::start swoole_server::reload swoole_server::shutdown swoole_server::addtimer swoole_server::deltimer swoole_server::after swoole_server::close swoole_server::send swoole...

0
0
发表了博客
2018/08/21 10:10

swoole http server 性能优化

上线了一个基于 swoole http server 的服务以后,发现这个服务的请求耗时监控毛刺十分严重,接口耗时波动比较大,经过一段时间的分析,发现这个服务 response 包十分大,有些 response 包高达1 ~ 2M,甚至更大,这...

0
1
发表了博客
2019/04/10 10:10

[Swoole入门到进阶] [公开课] Swoole服务器-Server的四层生命周期

PHP 完整生命周期   执行PHP文件     PHP扩展模块初始化(MINIT)       PHP扩展请求初始化(RINIT)       执行 PHP 逻辑       PHP扩展请求结束(RSHUTDOWN)       PHP脚本清理     PHP扩展模块结束(MSHUTDOWN)   终止PHP PHP 请求生命周期   如果是 cli 执行 PHP 脚本,那么...

0
0
发表于服务端专区
2019/06/19 12:42

Swoole的Server端常用方法和属性

/** * Reactor是master中的独立的几个线程, 在该线程中的每一个子线程中都运行着epoll函数的实例. * Swoole所有对于事件的监听, 都会在这些线程中实现.比如,来自客户端的连接, 本地通信的管道.以及,异步操作的文...

0
0
发表了博客
2018/12/13 14:37

Swoole server事件回调函数

在swoole中,一个swoole_server的拥有若干回调函数,这些回调函数决定了swoole_server的相关功能。可以通过 $serv->on( string $event, mixed $callback ); 1.onReceive 描述:接收数据的回调 函数原型: function onReceive( swoole_server $serv, $fd, $from_id, $data ); 参数 描述 $serv swoole_server对象 $fd 连接...

0
0
发表了博客
2019/05/23 14:22

swoole中http_server的配置与使用

swoole中为我们提供了一个swoole_http_server类,方便我们处理http请求。 但是它对http协议的支持并不完整,所以一般建议在前面加一层nginx进行代理,对于php文件的处理交由swoole处理。 一、创建一个简单的http服务 <?php //创建一个http server服务 $server = new swoole_http_server('0.0.0.0', 8888); $serv...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表于服务端专区
02/05 19:05

nodejs 与swoole 如何通讯?

服务器用的php和swoole搭配构建的tcp客户端,还挺好,最近因需求驱动,需要nodejs写一些东西,要调用服务器的数据采用tcp链接的形式,但是查了查nodejs 的手册竟然毫无头绪,有谁用过类似的组合?nodejs应该如何链接swoole 的服务器 swoole服务器启动代码大致如下 $swoole_server = new \Swoole\Server('0.0.0.0', 9502, SWO...

1
0
发表了问答
2019/12/17 21:42

千人齐聚共探开源,剑指源码尖峰对话 | 2019 OSC 年终盛典图文回顾

12月15日,2019年 OSC源创会年终盛典在深圳科兴科学园国际会议中心成功举办,本次年终盛典 活动详情 请查看, PPT下载 请点击,视频回看请点击。 作为开源中国官方最盛大的技术沙龙,本次年终盛典为期 1 天,上午为主会场,下午设置架构、大前端、综合技术、开源治理、腾讯开源共 5 个分会场。 大会邀请 30+ 国内知名技术...

7
2
2019/08/09 11:34

swoole停止队列问题

我 swoole 开启一个常驻内存脚本 里面有 redis 队列 我前端请求这个接口 前端有两个按钮,停止队列和开始队列 怎么实现停止队列 大佬们有思路吗 我业务逻辑是这样子,一直循环插入队列,然后跑队列 跑完在插入 插入在跑完

4
0
2019/05/25 18:03

请问swoole4.4怎么操作redis

看官方文档说 4.3版本以后 --enable-async-redis参数被废弃了 我就通过coroutine协程的方式把这个示例运行了一下 不成功 请问这个该怎么解决 看官方文档也没用4.4的文档 最新的还停留在4.2.5

1
0
发表于开发技能专区
2018/06/22 10:22

为什么基于 swoole 有那么多框架轮子,而不是提供一个好用的轮子?

为什么基于 swoole 有那么多框架轮子,而不是提供一个好用的轮子?

8
0
发表了问答
2018/12/04 10:54

既然韩天峰的Swoole4能实现了Golang的所有功能了,PHPer还有必要学Golang吗?

既然韩天峰的Swoole4能实现了Golang的所有功能了,PHPer还有必要学Golang吗? 性能比较,Swoole和Golang性能也相差无几。 性能比较:https://wiki.swoole.com/wiki/page/63.html swoole4的协程:https://segmentfault.com/a/1190000017243966...

4
1
发表了问答
2018/07/03 07:51

【开源访谈】韩天峰:从 2.x 跃入 4.x ,Swoole 开发背后的故事

6月14日,流行 PHP 协程引擎 Swoole 正式发布 4.0 版本,支持在 PHP 代码中的任意位置使用协程,并带来了全局变量隔离、支持 MySQL 存储过程等新特性。 Swoole 的上一个版本系列是 5 月份发布的 2.2.0 ,为什么会跳过 3.0 直接跃入 4.0 开发?Swoole 3.0 原本计划具备哪些特性?Swoole 4.0 放弃基于 libco 做协程的原因又...

30
12
发表了问答
2017/12/15 09:47

[swoole]会不会始终只有一个进程在处理消息?在addProcess里sendMessage,会把消息发到哪个进程?

public function handle() { $server = new Server('0.0.0.0', env('TASK_CLIENT_PORT')); $server->set([ 'worker_num' => 4, ]); $server->on('WorkerStart', [$this, 'onWorkerStart']); $server->on('Open', [$this, 'onOpen']); $server->on('Mes...

1
0
发表了问答
2017/11/10 15:27

swoole_process 多进程爬虫url去重和数据存储问题

用swoole_process创建主进程,然后再开启多个子进程,从主进程首次爬取主页面,把爬取到的url过滤后平均分发给多个子进程,每个子进程去爬取收到的url,进程间数据共享用的是redis队列,从url爬取到数据后先经过过滤,过滤完成以后再考虑保存到数据库,同时新的url地址保存到redis队列,等待进程空闲,再pop出来分发任务给...

4
0
发表了问答
2017/07/25 10:59

swoole,异步的PHP程序中可以使用Swoole\Http\Client作为WebSocket客户端?

初学者只懂得FastCGI php执行有超时。 如何做得到web js websocket长时间通信的? 看了swoole websocket 只会从js 做websocket, 对:异步的php程序做websocket客户端,是什么意思。 是通过cli执行吗?那如何触发消息返回给web?ajax轮训消息?...

2
0
发表了问答
2016/07/08 17:57

swoole的httpserver中,怎么能够针对所有的$response->end()增加一个回调函数的操作呢?

@matyhtf 你好,想跟你请教个问题: swoole的httpserver中,怎么能够针对所有的$response->end()增加一个回调函数的操作呢?类似于析构函数差不多。 附场景:一个webapi,接受请求的时候增加一个并发锁,结束请求的时候解除(返回的地方比较多,所以想通过$response->end()绑定一个回调函数来操作) 菜鸟求大师指点。。。...

2
0
发表了问答
2016/01/13 10:36

php swoole+amqp+rabbitmq整合多进程启动channel被locked问题

运行环境:swoole 1.7.21 稳定版 ,mac os x 10.10 , php 5.5, rabbitmq3.5, amqp 1.6 <?php error_reporting(E_ALL^E_NOTICE); date_default_timezone_set('Asia/Shanghai'); class send { private $redis; private $serv; private $mq_conn=null; private $mq_channel=null; private $mq_exchang...

2
4
发表了问答
2016/09/16 11:14

swoole_client网络问题不能实时触发onClose事件

swoole_client异步连接成功后,如果是服务端主动关闭是可以实时触发onClose事件回调的,可是如果是网络出现了问题(比如说关闭网络),为什么不能立即触发onclose函数?环境为mac + php7 + swoole-1.8.11,有没有遇到同样问题的?

4
0
发表了问答
2016/02/26 13:27

swoole支持MongoDB异步吗?

搜索了下官网,说要支持,又搜索了下源码,没发现

1
0
发表了问答
2015/08/14 10:58

swoole_process里的消息队列和pipe通信可以同时使用么?

@matyhtf 你好,想跟你请教个问题: 如题。 我想实现的是让进程的消息队列去分发和处理任务,然后再子进程中用pipe通信通知任务处理情况,但是发现在消息队列打开的时候,pipe通信好像不生效,要实现该怎么处理呢?刚接触swoole还不太了解,求指教

1
0
发表了问答
2015/07/19 11:20

php异步扩展和py做抓取那个更好呢?

@matyhtf 你好,想跟你请教个问题: 最近我开始创业,需要用的页面抓取,用上php异步扩展和py抓取上, 成本哪个会好一点呢? 在里以使用者都非常熟悉两者语言为大前提。

7
0
发表了问答
2015/05/15 13:58

阅读swoole遇到的问题

@matyhtf 你好,想跟你请教个问题: @matyhtf 你好,想跟你请教个问题: if (SwooleTG.type == SW_THREAD_REACTOR) { return swReactorThread_send2worker((void *) &(task->data), send_len, target_worker_id); } else { return swServer_send2worker_blocking(serv, (void *) &(tas...

1
1
发表了问答
2014/10/22 10:47

编译运行examples下server.c,提示Fatal Error: manager process exit. status=0, signal=11

@matyhtf 你好,想跟你请教个问题: 我是将swoole直接开发库来编译运行C服务程序的 编译运行:swoole-src-swoole-1.7.6-stable/examples/server.c,后有如下警告: WARN swServer_signal_hanlder: Fatal Error: manager process exit. status=0, signal=11. 然后manage进程退出了,worker父进程变成了1 这是为什么呢? 我...

1
0
发表了问答
2014/04/18 20:17

一些关于swoole的问题(7个),求版主回答

问题1: swoole的C架构是什么样子,你使用的是HS/HA 还是 L/F 管理工作节点。 问题2: swoole每次接收到连接是否是创建新的work进程或work线程,然后关闭连接后销毁,还是有其他机制比如prework,如果是prework这个阀值是多少。 问题3: swoole是如何有效利用多核的,比如线程或者进程过多竞争情况下。 问题4: 看官方介...

6
4
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
20 评论
935 收藏
分享
返回顶部
顶部