首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
传统的阻塞式tcp server,要如何用swoole改造?
之前的一个传统TCP服务,请求按顺序执行,必须处理完一个请求才能继续处理新的请求。 类似场景如下: 1.TCP客户端连上TCP服务端,TCP服务端发送一条指令到TCP客户端 2.TCP客户端执行指令,发送一条指令结果给TCP服务端 3.TCP服务端取得指令结果,然后继续发送另一条指令给TCP客户端 4.直到遇到终止指令,才断开客户端连接。 之前阻塞的代码编写是从上而下写下来,而用swoole编码是另一种模式。目前改造采用的一种方式,在work进程里接收数据,并做一个共享变量记录指令执行结果。客户端连上服务端时,把逻辑转移到task进程做阻塞处理:发送一条指令,然后判断共享变量里的指令执行结果值,然后再继续执行下一条指令,类推判断共享变量,如此下去。。。。 请教一下,不知道用swoole有没有更好的办法改这样的需求?
发布于10年前 · 1 次浏览 · 来自
提问
c
cleochan
之前的一个传统TCP服务,请求按顺序执行,必须处理完一个请求才能继续处理新的请求。 类似场景如下: 1.TCP客户端连上TCP服务端,TCP服务端发送一条指令到TCP客户端 2.TCP客户端执行指令,发送一条指令结果给TCP服务端 3.TCP服务端取得指令结果,然后继续发送另一条指令给TCP客户端 4.直到遇到终止指令,才断开客户端连接。 之前阻塞的代码编写是从上而下写下来,而用swoole编码是另一种模式。目前改造采用的一种方式,在work进程里接收数据,并做一个共享变量记录指令执行结果。客户端连上服务端时,把逻辑转移到task进程做阻塞处理:发送一条指令,然后判断共享变量里的指令执行结果值,然后再继续执行下一条指令,类推判断共享变量,如此下去。。。。 请教一下,不知道用swoole有没有更好的办法改这样的需求?
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2016-07-07
A
AprMay
为每一个连接建立一个buffer对象,缓存与此连接相关的数据。可以使用PHP的Array,以fd为key。
赞
0
回复
2016-07-07
梦你安
之前代码组织: {{{ 。。。。//取得协议信息 $serv->send('命令1'); $res = $serv->read('命令1结果'); if($res为真){ $serv->send('命令2'); $res2 = $serv->read('命令2结果'); if($res2为真){ $serv->send('命令2'); $res2 = $serv->re
赞
0
回复
2016-07-13
a
ajax
异步IO就是这样进行编程的。
赞
0
回复