Ruby と Sinatra は初めてです。簡単な HTML5 Server-Sent Event をセットアップしようとしています。以下のコードは Chrome 開発者ビルドでは正常に動作しますが、Windows7 と OSX の両方で非開発者ビルドと Safari では失敗します。
ブラウザ コンソールのエラー メッセージは「リソースの読み込みに失敗しました: キャンセルされました」です。
var source = new EventSource('pull');
source.addEventListener('message', function(e) {
console.log(e.data);
}, false);
source.addEventListener('open', function(e) {
// Conn open
}, false);
source.addEventListener('error', function(e) {
if (e.eventPhase == EventSource.CLOSED) {
// Connection was closed.
}
}, false);
以下のシナトラルートで
get '/pull' do
content_type 'text/event-stream'
newevent = false
response = "data: "+newevent.inspect+" \n\n"
end
JSP と Tomcat で同様のサーバー側コードを試してみましたが、すべてのブラウザーで正常に動作します。
シナトラについて知っておくべきことは何ですか? ありがとう!