首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
swoole升级到 4.5.3 后,之前的协程websocket客户端代码报错。
### 问题描述 swoole升级到 4.5.3 后,之前的协程websocket客户端代码报错。 ### Swoole版本,PHP版本,以及操作系统版本信息 swoole Swoole => enabled Author => Swoole Team <team@swoole.com> Version => 4.5.3 Built => Aug 30 2020 08:51:02 coroutine => enabled trace_log => enabled epoll => enabled eventfd => enabled signalfd => enabled cpu_affinity => enabled spinlock => enabled rwlock => enabled sockets => enabled openssl => OpenSSL 1.0.2k-fips 26 Jan 2017 http2 => enabled pcre => enabled zlib => 1.2.7 mutex_timedlock => enabled pthread_barrier => enabled futex => enabled mysqlnd => enabled async_redis => enabled Directive => Local Value => Master Value swoole.enable_coroutine => On => On swoole.enable_library => On => On swoole.enable_preemptive_scheduler => Off => Off swoole.display_errors => On => On swoole.use_shortname => On => On swoole.unixsock_buffer_size => 8388608 => 8388608 php 7.2.31 CentOS Linux release 7.7.1908 (Core) ### 相关代码 ```php go(function () { $cli = new Co\http\Client("www.xxx.com", 443, true); $ret = $cli->upgrade("/ws"); if ($ret && $cli->statusCode == 101) { var_dump(date('Y-m-d H:i:s') . '=连接='); $book = [xxx]; $cli->push(json_encode($book)); while (true) { if ($recv = $cli->recv()) { $data = $recv->data; //业务代码 } else { var_dump($recv); var_dump($cli->errCode); var_dump(socket_strerror($cli->errCode)); break; } echo '=异常断开='; } } else { echo '=超时='; } \Swoole\Timer::clearAll(); $cli->close(); }); ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? 之前是没有问题,现在启动直接输出: string(27) "2020-09-05 10:42:28=连接=" bool(false) int(11) string(32) "Resource temporarily unavailable" =异常断开=
发布于6年前 · 3 次浏览 · 来自
提问
AndyE
### 问题描述 swoole升级到 4.5.3 后,之前的协程websocket客户端代码报错。 ### Swoole版本,PHP版本,以及操作系统版本信息 swoole Swoole => enabled Author => Swoole Team <team@swoole.com> Version => 4.5.3 Built => Aug 30 2020 08:51:02 coroutine => enabled trace_log => enabled epoll => enabled eventfd => enabled signalfd => enabled cpu_affinity => enabled spinlock => enabled rwlock => enabled sockets => enabled openssl => OpenSSL 1.0.2k-fips 26 Jan 2017 http2 => enabled pcre => enabled zlib => 1.2.7 mutex_timedlock => enabled pthread_barrier => enabled futex => enabled mysqlnd => enabled async_redis => enabled Directive => Local Value => Master Value swoole.enable_coroutine => On => On swoole.enable_library => On => On swoole.enable_preemptive_scheduler => Off => Off swoole.display_errors => On => On swoole.use_shortname => On => On swoole.unixsock_buffer_size => 8388608 => 8388608 php 7.2.31 CentOS Linux release 7.7.1908 (Core) ### 相关代码 ```php go(function () { $cli = new Co\http\Client("www.xxx.com", 443, true); $ret = $cli->upgrade("/ws"); if ($ret && $cli->statusCode == 101) { var_dump(date('Y-m-d H:i:s') . '=连接='); $book = [xxx]; $cli->push(json_encode($book)); while (true) { if ($recv = $cli->recv()) { $data = $recv->data; //业务代码 } else { var_dump($recv); var_dump($cli->errCode); var_dump(socket_strerror($cli->errCode)); break; } echo '=异常断开='; } } else { echo '=超时='; } \Swoole\Timer::clearAll(); $cli->close(); }); ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? 之前是没有问题,现在启动直接输出: string(27) "2020-09-05 10:42:28=连接=" bool(false) int(11) string(32) "Resource temporarily unavailable" =异常断开=
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2020-09-06
AndyE
有的时候还会输出这样的信息,这又怎么理解,recv返回false,但是errCode没有问题。 string(27) "2020-09-06 06:35:26=连接=" bool(false) int(0) string(7) "Success" =异常断开
赞
0
回复
2020-09-06
鲁飞
回复
AndyE
握手被拒绝,errCode是0的时候可以检查httpCode。
赞
0
回复
2020-09-07
AndyE
回复
鲁飞
以前没问题,更新导致的,代码你看哪里需要修改吗?
赞
0
回复
2020-09-07
鲁飞
回复
AndyE
WebSocket服务端地址发出来
赞
0
回复
2020-09-07
AndyE
回复
鲁飞
wss://www.bitmex.com/realtime push可以用这个 ` {"op": "subscribe", "args": ["orderBookL2:XBTU20"]} `  同样的代码在没升级的服务器上就工作正常。
赞
0
回复
2020-09-07
AndyE
回复
鲁飞
我降级了 Version => 4.5.2 问题好了,最新的版本 4.5.3,应该有bug,谢谢你的帮助,希望能及时修复。
赞
0
回复
2020-09-07
鲁飞
回复
AndyE
recv加上超时时间吧,加上`-1` ``` $cli->recv(-1); ```
赞
0
回复
2020-09-07
AndyE
回复
鲁飞
尝试过,没用。
赞
0
回复
2020-09-08
鲁飞
回复
AndyE
使用master的代码重新编译。
赞
0
回复
2020-09-07
鲁飞
Resource temporarily unavailable 看这个https://wiki.swoole.com/#/question/use?id=resource-temporarily-unavailable-11 Success那个检查httpcode,打印`$cli->statusCode`
赞
0
回复