0

したがって、私の websocket は faye に対して適切に開いています。nginx_tcp_proxy モジュールを使用しています。curl を実行すると、見栄えがよくなります。

$ curl http://now.2u.fm:9200/faye\?message\=%5B%7B%22channel%22%3A%22%2Fmeta%2Fhandshake%22%2C%22version%22%3A%221.0%22%2C%22supportedConnectionTypes%22%3A%5B%22callback-polling%22%5D%2C%22id%22%3A%221%22%7D%5D\&jsonp\=__jsonp6__
__jsonp6__([{"id":"1","channel":"/meta/handshake","successful":true,"version":"1.0","supportedConnectionTypes":["long-polling","cross-origin-long-polling","callback-polling","websocket","eventsource","in-process"],"clientId":"jls0srprht51xb368yrojft3h4drgu0","advice":{"reconnect":"retry","interval":0,"timeout":45000}}]);#

-I フラグを付けてカールする

HTTP/1.1 200 OK
...
Connection: close

しかし、私のウェブサイトがこれを GET (エラー コードなし) としてヒットしようとすると、失敗した GET 要求が発生します。

ここに画像の説明を入力

編集:「プロトコルの切り替え」と表示されていることに気付きました!

ここに画像の説明を入力

ブラウザでURLを直接叩こうとしたときと同じです。

私の腸は、「ねえ、それはあなたがtcp接続を開いているからです。http接続ではありません!」と言っていますが、private_pubはGETを使用していますか? しかし、GET リクエストが TCP 経由で問題ないことはわかっていますが、何か間違ったことをしています。

4

1 に答える 1

0

問題は、Faye がソケットを開いて http を使用できる必要があることであることがわかりました。private_pub は同じドメイン/ポートで両方を行うことを前提としているため、private_pub とそれがロードしていた faye 拡張機能を適切なポートを使用するように変更せずに tcp モジュールを使用することは不可能でした。

最終的に、セットアップがはるかに簡単で、プライベート pub を変更する必要がないため、代わりに HAProxy を使用しました。

于 2012-10-12T08:52:23.667 に答える