使用屈与服务器侧stream
块。
get '/stream', :provides => 'text/event-stream' do
stream :keep_open do |out|
connections << out
out.callback { connections.delete(out) }
end
end
在客户端:
var es = new EventSource('/stream');
es.onmessage = function(e) { $('#chat').append(e.data + "\n") };
当我使用的应用程序直接通过http://localhost:9292/
,一切都运行完美。 连接是持久的,所有消息都传递给所有的客户。
然而,当它经过的Nginx, http://chat.dev
,连接被丢弃,重新连接火灾每秒左右。
Nginx的设置看起来确定对我说:
upstream chat_dev_upstream {
server 127.0.0.1:9292;
}
server {
listen 80;
server_name chat.dev;
location / {
proxy_pass http://chat_dev_upstream;
proxy_buffering off;
proxy_cache off;
proxy_set_header Host $host;
}
}
试图keepalive 1024
在upstream
部以及proxy_set_header Connection keep-alive;
在location
。
没有什么帮助:(
没有持续的连接和邮件不会传递到任何客户端。