我在 Rails 3.2.13 中使用'faye' gem。在开发中,我在 localhost:9292 上运行 faye,在 localhost:3000 上运行我的应用程序。我可以通过命令行的 curl 请求激活弹出窗口,但我无法在我的应用程序中建立连接。我在控制台中遇到的错误是:
WebSocket 连接到“ws://localhost:9292/faye”失败:WebSocket 握手期间出错:“升级”标头丢失
我正在尝试在我的 application.js 文件中为 faye 定义一个标头:
$(function() {
var faye = new Faye.Client("http://localhost:9292/faye");
faye.setHeader("Access-Control-Allow-Origin", "http://localhost:3000");
faye.subscribe('/messages', function (data) {
alert(data);
});
});
这是添加标题的正确方法吗?
我在这里发现了一个类似问题的讨论:https ://github.com/faye/faye/issues/222 在这种情况下,错误似乎与未加载的 ssl 设置有关。我检查了我的 rack gem 的 lib 目录,发现
def ssl?
scheme == 'https'
end
这似乎很好。我如何知道设置是否未正确加载?
任何关于下一步看哪里的线索将不胜感激。