Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
客户端对http管道中的多个请求执行长轮询。_Http_Unix_Pipeline - Fatal编程技术网

客户端对http管道中的多个请求执行长轮询。

客户端对http管道中的多个请求执行长轮询。,http,unix,pipeline,Http,Unix,Pipeline,我正在寻找一个客户端软件,它将在Unix系统上运行,在一个http管道中对多个请求进行长时间轮询 基本上,我们需要向服务器发出几个长轮询GET请求。所有请求都需要在单个HTTP管道中完成 客户端需要在任何给定时间打开N个请求,其中N>1 服务器将以200 OK或204 No Content响应 如果是200 OK,则需要通过管道将响应导入新流程。这可以使用PHP轻松实现。可以使用来构建一个自定义客户机来实现这一点。也看到 使用Go也相当简单,如果您自己创建连接,您只需发送所有请求,然后您就可以按

我正在寻找一个客户端软件,它将在Unix系统上运行,在一个http管道中对多个请求进行长时间轮询

基本上,我们需要向服务器发出几个长轮询GET请求。所有请求都需要在单个HTTP管道中完成

客户端需要在任何给定时间打开N个请求,其中
N>1

服务器将以
200 OK
204 No Content
响应


如果是
200 OK
,则需要通过管道将响应导入新流程。

这可以使用PHP轻松实现。可以使用来构建一个自定义客户机来实现这一点。也看到

使用Go也相当简单,如果您自己创建连接,您只需发送所有请求,然后您就可以按顺序读取响应,它将通过一个http管道连接发送所有请求

conn, _ := net.Dial("tcp", "127.0.0.1:80")
client := httputil.NewClientConn(conn, nil)

req, _ := http.NewRequest("GET", "/", nil)
client.Write(req)

resp, _ := client.Read(req)

不过,您应该进行更多的错误检查。

我们最终用GO实现了它。工作起来很有魅力!