0

fayeのラッパーであるprivate_pubを使用しています

https://github.com/ryanb/private_pub

クライアント側で Websocket を無効にしたくないので、本番環境が Websocket をサポートしていないため、faye はポーリングにフォールバックします。

faye の Web サイトで行うことをお勧めします。

一部のアプリケーションでは、一部のトランスポートを使用から除外する必要がある場合があります。たとえば、展開環境が WebSocket をサポートできないことがわかっている場合や、ポーリングに固執する理由がある場合があります。このような状況では、次のようにトランスポートを無効にすることができます:

client.disable('websocket');

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

作成時に websocket を無効にするように private_pub.js コードを変更してみます。

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

しかし、私はこのエラーを受け取ります: TypeError: Object # has no method 'disable'

サイトの例の「クライアント」が私のクライアントと同じタイプであることはかなり確信しています。これは、以前のサイトでこのコードが示されているvar client = new Faye.Client('http://localhost:8000/faye');ためです。

サイトの例について何か理解していませんか? または、faye クライアントが websocket の代わりにポーリングを使用するように、websockets を無効にするにはどうすればよいですか?

4

2 に答える 2

1

これで問題が解決したようです Faye.Transport.WebSocket.isUsable = function(_,c) { c(false) }。ここで解決策を見つけました:http: //groups.google.com/group/faye-users/browse_thread/thread/14447dae9f75afab

于 2012-05-12T07:54:22.153 に答える
0

試してみましたか

client.disable('websocket'); 

var クライアントは faye クライアントと同じですが、オブジェクトとして self.fayeClient を使用します

于 2012-05-11T21:01:49.663 に答える