首页
下载
文档
问答社区
视频
捐赠
源代码
AI 助理
赞助商
CRMEB
Apipost
腾讯云
微擎
禅道
51Talk
商业产品
Swoole AI 智能文档翻译器
Swoole-Compiler PHP 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
关于缓存区事件无效的问题
我使用1.9.4 版本 , onBufferFull 和 onBufferEmpty 好像没有被触发。测试代码如下: <?php $server = new swoole_websocket_server("0.0.0.0", 8080, SWOOLE_PROCESS, SWOOLE_SOCK_TCP); $server->set(['worker_num' => 1, 'task_worker_num' => 1, 'buffer_output_size' => 1024, 'buffer_high_watermark' => 800, 'buffer_low_watermark' => 500 ]); $server->on('message', function (swoole_websocket_server $_server, $frame) { $_send = str_repeat('A', 1023); echo strlen($_send) ."\n"; $_server->push($frame->fd, $_send); echo "getLastError:".$_server->getLastError() ."\n"; $_send = str_repeat('B', 1023); echo strlen($_send)."\n"; $_server->push($frame->fd, $_send); echo "getLastError:".$_server->getLastError() ."\n"; $_send = str_repeat('C', 1023); echo strlen($_send)."\n"; $_server->push($frame->fd, $_send); echo "getLastError:".$_server->getLastError() ."\n"; }); $server->on("BufferFull", function(swoole_websocket_server $_server, $fd) { //暂停数据接收 echo "bufferFull\n"; // $_server->pause($fd); }); $server->on("BufferEmpty", function(swoole_websocket_server $_server, $fd) { //恢复数据接收 echo "bufferEmpty\n"; // $_server->resume($fd); }); 执行结果如图: 能指点下吗,感谢
发布于6年前 · 1 次浏览 · 来自
提问
R
Raymon
我使用1.9.4 版本 , onBufferFull 和 onBufferEmpty 好像没有被触发。测试代码如下: <?php $server = new swoole_websocket_server("0.0.0.0", 8080, SWOOLE_PROCESS, SWOOLE_SOCK_TCP); $server->set(['worker_num' => 1, 'task_worker_num' => 1, 'buffer_output_size' => 1024, 'buffer_high_watermark' => 800, 'buffer_low_watermark' => 500 ]); $server->on('message', function (swoole_websocket_server $_server, $frame) { $_send = str_repeat('A', 1023); echo strlen($_send) ."\n"; $_server->push($frame->fd, $_send); echo "getLastError:".$_server->getLastError() ."\n"; $_send = str_repeat('B', 1023); echo strlen($_send)."\n"; $_server->push($frame->fd, $_send); echo "getLastError:".$_server->getLastError() ."\n"; $_send = str_repeat('C', 1023); echo strlen($_send)."\n"; $_server->push($frame->fd, $_send); echo "getLastError:".$_server->getLastError() ."\n"; }); $server->on("BufferFull", function(swoole_websocket_server $_server, $fd) { //暂停数据接收 echo "bufferFull\n"; // $_server->pause($fd); }); $server->on("BufferEmpty", function(swoole_websocket_server $_server, $fd) { //恢复数据接收 echo "bufferEmpty\n"; // $_server->resume($fd); }); 执行结果如图: 能指点下吗,感谢
赞
0
分享
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
评论
2019-08-31
叶
叶XX
server只能在base模式下面用吧
赞
0
回复
微信公众号
热门内容
暂无回复的问答
- CodeGalaxy K3s 轻量集群节点之间如何实现负载均衡
- 关于openssl CURL WARNING swSSL_connect: SSL_connect(fd=69) failed. Error: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small[1|394]
- 多个模型如何进行事务异常回退?
- websocket开启wss报错
- 协程tcp服务器如何使用多进程?recv()方法接收信息,打印出来的pid一直是同一个。没用使用到多进程啊。