【发布时间】:2014-07-23 02:09:30
【问题描述】:
我正在尝试使用 curl 进行持久连接,就像 websockets 一样。一旦建立连接,客户端和服务器每次只发送小文本消息而不是新的 http 请求。
对于 websocket 请求,我能够完成握手并从服务器接收消息(连接保持打开状态)。唯一的问题是 curl 不会发送没有“HTTP/1.1”标头的任何内容。
每次运行 curl_exec 时,curl 都会发送“GET / HTTP/1.1”。建立连接后就不需要了。
我可以使用 curls 自定义请求选项来发送我的消息,但这会形成像“消息/HTTP/1.1”这样的标头。
如果有办法从标头中消除“HTTP/1.1”,那就太好了。
我知道 php 套接字是一个更好的选择,但我只是好奇是否有一种使用 curl 的 hacky 方法来实现这一点(可能是 websocket 客户端)..
有什么想法吗?
【问题讨论】:
-
curl 不是已经默认使用 keep-alive 了吗? serverfault.com/questions/199434/…
-
可以,但我如何回复来自服务器的消息?一旦建立连接..服务器不理解http请求,它只寻找hybi10编码消息(根据hybi10 websocket规范)..并且curl似乎只发送问题中提到的http请求。