Ruby on rails 侦听由一个HTTP请求生成的多个响应

Ruby on rails 侦听由一个HTTP请求生成的多个响应,ruby-on-rails,ruby,http,Ruby On Rails,Ruby,Http,我们的后端(rails)需要与一些第三方服务通信(我们无法控制它)。与此服务的所有通信都必须使用单个持久HTTP连接完成 由于->是一个请求和,我们最终在上面构建了一个解决方案。EM允许我们在每次连接上接收数据时接收事件。然后将数据传递给解析传入的http消息,最后我们将消息排入sidekiq队列 您的意思是服务器在没有请求的情况下“推送”新响应吗?或者,所有这些都是一个长请求(那么为什么会有内容长度?),您可以尝试使用纯ruby套接字:确切地说,服务器开始推送响应。@Axxiss-HTTP协议

我们的后端(rails)需要与一些第三方服务通信(我们无法控制它)。与此服务的所有通信都必须使用单个持久HTTP连接完成


由于
->
是一个请求和
,我们最终在上面构建了一个解决方案。EM允许我们在每次连接上接收数据时接收事件。然后将数据传递给解析传入的http消息,最后我们将消息排入sidekiq队列

您的意思是服务器在没有请求的情况下“推送”新响应吗?或者,所有这些都是一个长请求(那么为什么会有
内容长度
?),您可以尝试使用纯ruby套接字:确切地说,服务器开始推送响应。@Axxiss-HTTP协议是一个基于请求-响应模式的应用层协议,您不能使用HTTP做您想做的事情。您需要降低级别并使用TCP协议。RubySockets库非常适合这样做——您可以使用http处理登录,并且在成功后打开一个套接字。这个第三方服务是什么?也许看看他们的文件会有助于解决问题?
-> Login
<- Ok
-> Subscribe
<- Ok
<- Data
<- Data
<- Data
...
<- Data
Connection → keep-alive
Content-Length → 183
Content-Type → text/xml