首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
客户端怎么实现监听服务端发送的消息。类似2.x版本注册on_receive 事件
### 问题描述 客户端怎么实现监听服务端发送的消息。类似2.x版本注册on_receive 事件 新版本是直接调用client->recv()。但是怎么监听服务端的返回呢,而不是每次都主动调用吧。 ### Swoole版本,PHP版本,以及操作系统版本信息 Swoole 最新版 PHP 7.1.x mac ### 相关代码 ```php $retval = $socket->connect('0.0.0.0', 9517); $n = $socket->send("1111"); $data = $socket->recv(); $socket->close(); ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? 实际只能同步在send以后调用一次recv获取服务端返回的消息 期望,能一直监听服务端的消息推送,有消息就能接收到
发布于5年前 · 0 次浏览 · 来自
提问
nick1
### 问题描述 客户端怎么实现监听服务端发送的消息。类似2.x版本注册on_receive 事件 新版本是直接调用client->recv()。但是怎么监听服务端的返回呢,而不是每次都主动调用吧。 ### Swoole版本,PHP版本,以及操作系统版本信息 Swoole 最新版 PHP 7.1.x mac ### 相关代码 ```php $retval = $socket->connect('0.0.0.0', 9517); $n = $socket->send("1111"); $data = $socket->recv(); $socket->close(); ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? 实际只能同步在send以后调用一次recv获取服务端返回的消息 期望,能一直监听服务端的消息推送,有消息就能接收到
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2020-09-25
鲁飞
while true 参考https://wiki.swoole.com/#/coroutine_client/client?id=%e5%ae%8c%e6%95%b4%e7%a4%ba%e4%be%8b
赞
0
回复
2020-09-25
nick1
回复
鲁飞
麻烦再问下: Co\run(function(){ $client = new Swoole\Coroutine\Client(SWOOLE_SOCK_TCP); if (!$client->connect('127.0.0.1', 9501, 0.5)) { echo "connect failed. Error: {$client->errCode}\n"; } $client->send("hello world\n"); echo $client->recv(); $client->close(); }); 这个client对象,在这个代码的外面如何获取
赞
0
回复
2020-09-26
nick1
回复
鲁飞
你好,其实我想实现的是下面这个例子里面的东西: https://gitee.com/gaork/sms/blob/master/sms_server/cmpp3.php 这个例子是2.X版本的,不知道在最新版本应该怎么去实现呢?启动server然后在server的onstart方法里面启动一个客户端,去链接一个第三方的服务端。
赞
0
回复