是否可以使用php curl发送原始文本到服务器


Is it possible to send raw text to a server using php curl?

我正在尝试使用curl来创建持久连接,就像websockets一样。一旦连接建立,客户端和服务器每次只是发送小文本消息,而不是一个新的HTTP请求。

对于websocket请求,我能够完成握手并从服务器接收消息(连接保持打开)。唯一的问题是curl不会发送任何带有'HTTP/1.1'标头的内容。

每次运行curl_exec时,curl发送"GET/HTTP/1.1"。一旦连接建立,就不需要了。

我可以使用卷发自定义请求选项来发送我的消息,但这将形成一个像"message/HTTP/1.1"的头。

如果有一种方法可以从头中消除"HTTP/1.1",那就太好了。

我知道php套接字是一个更好的选择,但我只是好奇是否有一个hack的方法来实现这一点(websocket客户端可能)使用curl.

有什么想法吗?

Curl是用无状态的http协议设计的(你打开一个连接,发送一个请求,等待一个回复,然后关闭连接)。

但是,如果您愿意,可以使用curl。您需要使用CURLOPT_CONNECT_ONLY