我正在Rails 3.2.13中使用'faye'宝石。在开发环境中,我在localhost:9292上运行faye,在localhost:3000上运行我的应用程序。我可以通过curl请求从命令行激活弹出窗口,但我无法从我的应用程序内建立连接。我在控制台中收到的错误是:
WebSocket connection to 'ws://localhost:9292/faye' failed: Error during WebSocket handshake: 'Upgrade' header is missing
我正在尝试在我的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
这看起来很好。我怎样才能知道设置没有被正确加载?
有关下一步查找的任何线索都将不胜感激。