首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
需要用到TCP 异步客户端,官方已经将async模块移出,官方讲可以通过协程进行转化,是否有人可以提供现成示例代码?
### 问题描述 需要用到TCP 异步客户端,官方已经将async模块移出,官方讲可以通过协程进行转化,但是我却没有看懂。 如何实现TCP客户端拥有如下代码类似的功能? ### Swoole版本,PHP版本,以及操作系统版本信息 swoole 4.8.5 PHP7.4.28 CentOS7.9 ### 相关代码 ```php 实现如下类似的功能。 <?php //创建异步tcp客户端 $client = new swoole_client(SWOOLE_SOCK_TCP,SWOOLE_SOCK_ASYNC); //注册链接成功的回调 $client->on('connect',function($cli){ $cli->send("hello\n"); }); //注册数据接收 $cli : 服务端信息$data 数据 $client->on("receive",function($cli,$data){ echo "data:$data"; }); //注册链接失败 $client->on("error",function($cli){ echo "失败\n"; }); //注册关闭函数 $client->on('close',function($cli){ echo "关闭\n"; }); //发起链接 $client->connect("192.168.50.1",8080,10); ``` 希望有人能够帮解答一下。
发布于4年前 · 11 次浏览 · 来自
提问
zgh4
### 问题描述 需要用到TCP 异步客户端,官方已经将async模块移出,官方讲可以通过协程进行转化,但是我却没有看懂。 如何实现TCP客户端拥有如下代码类似的功能? ### Swoole版本,PHP版本,以及操作系统版本信息 swoole 4.8.5 PHP7.4.28 CentOS7.9 ### 相关代码 ```php 实现如下类似的功能。 <?php //创建异步tcp客户端 $client = new swoole_client(SWOOLE_SOCK_TCP,SWOOLE_SOCK_ASYNC); //注册链接成功的回调 $client->on('connect',function($cli){ $cli->send("hello\n"); }); //注册数据接收 $cli : 服务端信息$data 数据 $client->on("receive",function($cli,$data){ echo "data:$data"; }); //注册链接失败 $client->on("error",function($cli){ echo "失败\n"; }); //注册关闭函数 $client->on('close',function($cli){ echo "关闭\n"; }); //发起链接 $client->connect("192.168.50.1",8080,10); ``` 希望有人能够帮解答一下。
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2022-08-13
zgh4
想实现发送数据和接收数据分开,而不是需要去轮询。
赞
0
回复
2022-08-18
Rango
协程客户可以实现异步客户端的所有功能,编程的复杂度更低,更稳定。你说的例子中,可以开启一个单独的协程去死循环`recv`数据即可,发送数据可以使用`channel`
赞
0
回复