0

所以我的 websocket 可以正常打开到 faye,我正在使用 nginx_tcp_proxy 模块。当我运行卷曲时,它看起来不错:

$ 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 请求:

在此处输入图像描述

编辑:我注意到它刚才说“切换协议”!

在此处输入图像描述

与我尝试直接在浏览器中点击网址时相同。

我的直觉说,“嘿,那是因为你打开了一个 tcp 连接而不是一个 http 连接!”,但是 private_pub 使用 GET 吗?但就我所知,GET 请求通过 TCP 就可以了,但我做错了。

4

1 回答 1

0

我发现问题是 Faye 需要能够打开套接字并使用 http。因为 private_pub 假设你在同一个域/端口上都这样做,所以使用 tcp 模块是不可能的,而无需修改 private_pub 和它正在加载的 faye 扩展以使用正确的端口。

最后我改用了 HAProxy,因为它设置起来更简单,并且不需要修改私人 pub。

于 2012-10-12T08:52:23.667 回答