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

时间:2012-06-12 13:38:18

标签: http unix pipeline

我正在寻找一个可以在Unix系统上运行的客户端软件,在单个http管道中对多个请求进行长轮询。

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

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

服务器将以200 OK204 No Content回复。

如果是200 OK,则需要将响应通过管道传输到新流程中。

1 个答案:

答案 0 :(得分:1)

这可以使用PHP轻松实现。 HttpRequestPool可用于构建自定义客户端。另请参阅How can I make use of HTTP 1.1 persistent connections and pipelining from 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)

你应该做更多的错误检查。

相关问题