我是新手Ruby和Sinatra,我正在尝试使用它设置一个简单的HTML5服务器发送事件。下面的代码在Chrome开发人员版中运行良好,但在非开发人员版和Windows7和OSX上的Safari中失败。
浏览器控制台中的错误消息为“Failed to load resource: cancelled”。
浏览器控制台中的错误消息为“Failed to load resource: cancelled”。
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);
使用下面的Sinatra路由:
get '/pull' do
content_type 'text/event-stream'
newevent = false
response = "data: "+newevent.inspect+" \n\n"
end
我之前使用JSP和Tomcat编写了类似的服务器端代码,并且在所有浏览器上都能正常工作。
关于Sinatra,我需要知道什么呢?谢谢!