0

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

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

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

服务器将使用200 OK或响应204 No Content

在 a 的情况下200 OK,需要将响应传送到新进程中。

4

1 回答 1

1

这可以使用 PHP 轻松实现。HttpRequestPool可用于构建自定义客户端来执行此操作。另请参阅如何使用 HTTP 1.1 持久连接和 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)

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

于 2012-06-12T13:44:52.860 回答