Rai*_*ner 16 ruby ruby-on-rails eventmachine ruby-on-rails-4
我有一个API网址,它是一个内容类型为的数据流:text/event-stream.
怎么可能听流?喜欢在每个事件中加载来打印数据?我曾尝试使用ruby libaryem-eventsource
我的test.rb档案:
require "em-eventsource"
EM.run do
source = EventMachine::EventSource.new("my_api_url_goes_here")
source.message do |message|
puts "new message #{message}"
end
source.start
end
Run Code Online (Sandbox Code Playgroud)
当我访问我的api url时,我可以看到每秒更新的数据.但是当我在终端中运行ruby文件时,它不会打印任何数据/消息.
设置一个定时器来检查source.ready_state,似乎由于某种原因它没有连接到api
编辑:看来你的问题出在 https 的 SNI 中,当前的 eventmachine 版本不支持它,因此在连接 eventsource 时尝试连接到 api 机器上的默认虚拟主机,而不是 api 所在的虚拟主机,因此CONNECTING状态
尝试使用 master 分支的 eventmachine,它已经声明支持 SNI,将在 1.2.0 中发布:
gem 'eventmachine', github:'eventmachine/eventmachine'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
677 次 |
| 最近记录: |