Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails HTML5和rails_Ruby On Rails_Html_Push - Fatal编程技术网

Ruby on rails HTML5和rails

Ruby on rails HTML5和rails,ruby-on-rails,html,push,Ruby On Rails,Html,Push,我以前使用html5 eventsource从服务器(确切地说,从jsp页面)接收数据。我目前正在研究rails,据我所知,我们需要使用像faye这样的gem和webrick一起运行一个单独的服务器,以便在rails中完成同样的事情。真的是这样吗?我不能简单地让我的eventsource监听rails URL吗? 非常感谢。 编辑:rails 3.:) ActionController::Live::SSE 您可以在Rails中监听您想要的任何端点—区别在于您必须使用它 这将需要在您发送请求时调

我以前使用html5 eventsource从服务器(确切地说,从jsp页面)接收数据。我目前正在研究rails,据我所知,我们需要使用像faye这样的gem和webrick一起运行一个单独的服务器,以便在rails中完成同样的事情。真的是这样吗?我不能简单地让我的eventsource监听rails URL吗? 非常感谢。
编辑:rails 3.:)

ActionController::Live::SSE

您可以在Rails中监听您想要的任何端点—区别在于您必须使用它

这将需要在您发送请求时调用,您的前端将能够捕获它将提供的任何响应。诚然,我以前没有使用“本机”设置实现过这一点(我们只在生产中使用过)

但是,您可以从以下方面获益:

--


至于实现的进一步复杂性,我现在还没有。如果你想让我写一篇关于Pusher的文章,如果你留下评论(它是最具伸缩性和健壮性的)

我不知道ActionController::Live在“Rails 3”中可用哦,对不起,它不是!我的缺点:(你想让我删除答案吗?我用em websocket解决了这个问题。事实证明,由于
thin
在不同的端口上运行,维护websocket客户端列表和发送双向MSG非常容易。无论如何,感谢Rich的努力
#config/routes.rb
get "test" => "tests#test"

#app/controllers/tests_controller.rb
class TestsController < ApplicationController
   include ActionController::Live

   def test
     response.headers['Content-Type'] = 'text/event-stream'
     sse = SSE.new(response.stream, retry: 300, event: "event-name")
     sse.write({ name: 'Test'})
   ensure
     sse.close
   end

end
#app/assets/javascripts/application.js
var source = new EventSource("/test");
source.onmessage = function(event) {
    alert(event.data);
};