首页
下载
文档
问答社区
视频
捐赠
源代码
AI 助理
赞助商
CRMEB
Apipost
腾讯云
微擎
禅道
51Talk
商业产品
Swoole AI 智能文档翻译器
Swoole-Compiler PHP 代码加密器
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); ``` 希望有人能够帮解答一下。
发布于2年前 · 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
回复
微信公众号
热门内容
暂无回复的问答
- 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一直是同一个。没用使用到多进程啊。