在faye客户端上禁用websockets(使用private_pub)

时间:2012-05-11 20:59:05

标签: javascript ruby-on-rails websocket faye

我正在使用private_pub,它是faye

的包装器

https://github.com/ryanb/private_pub

我不想在客户端禁用websockets,所以faye会回退到polling,因为我的生产环境不支持websockets。

建议在王菲网站上这样做:

  

对于某些应用程序,您可能需要从使用中排除某些传输。例如,您可能知道您的部署环境不支持WebSockets,或者您有理由坚持轮询。在这种情况下,你可以禁用这样的传输:

client.disable('websocket');

http://faye.jcoglan.com/browser.html

我尝试修改private_pub.js代码以在创建时禁用websockets:

self.fayeClient = new Faye.Client(self.subscriptions.server);
self.fayeClient.disable('websocket'); // my modification

但是我收到了这个错误: TypeError:Object#没有方法'disable'

我非常确定该网站示例中的“客户端”与我的客户端的类型相同,因为在网站上的早期显示了此代码:var client = new Faye.Client('http://localhost:8000/faye');,就像我的代码中的self.fayeClient一样已创建。

我不了解网站中的示例吗?或者我应该如何禁用websockets以便我的faye客户端将使用轮询而不是websockets?

2 个答案:

答案 0 :(得分:1)

这似乎解决了这个问题: Faye.Transport.WebSocket.isUsable = function(_,c) { c(false) }。 在这里找到解决方案: http://groups.google.com/group/faye-users/browse_thread/thread/14447dae9f75afab

答案 1 :(得分:0)

你试过吗

client.disable('websocket'); 

var客户端等于faye客户端,但你使用self.fayeClient作为对象