ruby-on-rails-4-EventController对ActionController :: Live的调用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了ruby-on-rails-4-EventController对ActionController :: Live的调用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1934字,纯文字阅读大概需要3分钟。
内容图文
我目前正在一个具有以下功能的网站上工作:
>即时聊天
>一些统计
>一些形式
我正在使用:Rails 4 Puma Nginx
我正在使用ActionController :: Live并创建了一个事件动作,该事件动作在页面加载时被调用,并且绑定了侦听器,以监听聊天消息或更改统计信息.
def events
response.headers["Content-Type"] = "text/event-stream"
sse = ServerEvent.new(response.stream)
redis = Redis.new
# the safe_write method is the implementation of a workaround for the problem stated on
# http://evaleverything.com/2013/09/07/response-streams-with-rails-4-and-redis
sse.safe_write do
redis.psubscribe("redis-foobar-key*") do |on|
on.pmessage do |pattern, event, data|
sse.write(data, { event: event})
end
end
end
rescue IOError
puts "Stream Closed"
ensure
puts "closing all threads and connections\n"
redis.quit
sse.close
end
我面临的问题是:加载页面时,有时一切正常,我可以启动事件源并正确处理事件,但有时事件源请求保持待处理状态,并且不返回任何错误.
我已通过以下方式成功尝试:
>镀铬窗户
> chrome macosx(计算机A)
> firefox macosx(计算机A)
并通过以下方式进行了不成功的尝试:
> chrome ubuntu(在代理之后)
> firefox ubuntu(在代理之后)
> chrome-macosx(计算机B)
> firefox macosx(计算机B)
我正在使用nginx,但是不要以为是问题,这是我的配置
upstream bar {
server foo.com:9292;
}
server {
listen 80;
server_name foo.com megafoo.com;
root /(...)/public;
location / {
proxy_pass http://bar;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Connection '';
proxy_http_version 1.1;
chunked_transfer_encoding off;
proxy_buffering off;
proxy_cache off;
if (-f $request_filename) {
break;
}
}
location ~* ^/assets/ {
# Per RFC2616 - 1 year maximum expiry
expires 1y;
add_header Cache-Control public;
# Some browsers still send conditional-GET requests if there's a
# Last-Modified header or an ETag header even if they haven't
# reached the expiry date sent in the Expires header.
add_header Last-Modified "";
add_header ETag "";
break;
}
}
解决方法:
看起来杀毒软件阻止了连接,不允许其成功完成
内容总结
以上是互联网集市为您收集整理的ruby-on-rails-4-EventController对ActionController :: Live的调用全部内容,希望文章能够帮你解决ruby-on-rails-4-EventController对ActionController :: Live的调用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。