由于传输层/元/连接调用,使用faye / nodejs的firefox / chrome的长时间初始页面加载

我遇到了一个奇怪的问题,faye / nodejs,由于/ meta / connect调用,页面在初始页面加载时似乎长时间加载。 此页面加载似乎持续正好45s(这是服务器上设置的超时值)

以下是电话的详细信息:

有关电话如下:

RAW GET: https ://MYURL.com:8089/notifications ? message =% 5B%7B%22channel%22%3A%22%2Fmeta%2Fconnect%22%2C%22clientId%22%3A%220c3gocq1rwi3sl0dskn4u00e8wj7%22% 2C% 22连接types%22%3A%22回话轮询%22%2C%22%22%3A%225%22%7D%5D&jsonp = __jsonp3__

params:jsonp:__jsonp3__ message:[{“channel”:“/ meta / connect”,“clientId”:“0c3gocq1rwi3sl0dskn4u00e8wj7”,“connectionType”:“callback-polling”,“id”:“5”}]

response:__jsonp3 __([{“id”:“5”,“clientId”:“0c3gocq1rwi3sl0dskn4u00e8wj7”,“channel”:“/ meta / connect”,“successful”:true,“advice”:{“reconnect”:“retry ”, “间隔”:0, “超时”:45000}}]);

我已经尝试过没有SSL,但问题仍然存在,所以它似乎并没有涉及到这一点。

这个页面在这段时间内是完全可以响应的,但是对于我的客户来说显然是一个问题,因为他们只是看到ff或chrome中的加载栏,并且在继续之前最终等待整个45秒停止。 任何帮助debugging或缓解这个问题,赞赏; 可能使初始连接调用asynchronous,所以它不会触发初始页面加载?

我也在这里发布了faye google组: https ://groups.google.com/forum/?fromgroups#! topic/ faye-users/xZI4adt3DpA%5B1-25%5D

但是,我还没有得到答复,但似乎我不是唯一的这个问题。

任何帮助表示赞赏。

谢谢!

凯文

以防万一任何未来的谷歌玩家绊倒这个话题:有关问题已经在新版本的Faye中得到解决。 在我原来的问题中有一些关于谷歌链接的更多细节 – 这个问题应该从faye 0.8.4(现在的0.8.6)

我可以确认,这解决了我的问题,我不再看到页面加载超时。

听起来你并没有end()你发送的响应,所以你的服务器保持连接打开。

当发送到频道/元/连接添加到您的参数:

 "advice":{"timeout": 0} 

所以你的连接信息应该是这样的:

 {"channel":"/meta/connect","clientId":"0c3gocq1rwi3sl0dskn4u00e8wj7","connectionType":"callback-polling","id":"5","advice":{"timeout":0}} 

你可以按照我的解决scheme从这个地方开始:

 # server.rb @engine.connect(response['clientId'], message['advice']) do |events| callback.call([response] + events) end ... # proxy.rb def connect(client_id, options = {}, &callback) debug 'Accepting connection from ?', client_id @engine.ping(client_id) conn = connection(client_id, true) conn.connect(options, &callback) @engine.empty_queue(client_id) end ... # connection.rb def connect(options, &block) options = options || {} timeout = options['timeout'] ? options['timeout'] / 1000.0 : @engine.timeout set_deferred_status(:deferred) callback(&block) begin_delivery_timeout begin_connection_timeout(timeout) end 

消息进入/ meta / connect通道时调用这些方法。