我正在 Rails 3.2.13 中使用“faye”gem。在开发过程中,我在 localhost:9292 上运行 faye,在 localhost:3000 上运行我的应用程序。我可以使用命令行中的curl 请求激活弹出窗口,但无法从应用程序内建立连接。我的控制台中出现的错误是:
与“ws://localhost:9292/faye”的 WebSocket 连接失败: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 https://github.com/faye/faye/issues/222在这种情况下,错误似乎与未加载 ssl 设置有关。我检查了我的rack gem的lib目录并发现
def ssl?
scheme == 'https'
end
这看起来不错。我如何知道设置是否未正确加载?
任何关于下一步该去哪里寻找的线索将不胜感激。
我在关注 Ryan Bates 的railscast 时遇到了同样的问题:http://railscasts.com/episodes/260-messaging-with-faye http://railscasts.com/episodes/260-messaging-with-faye
Faye Web 套接字服务器需要一个适配器才能在瘦 Web 服务器上运行并发送升级标头。
将此行添加到您的 Fayerackup 文件中(.ru
)将通过机架中间件加载适配器:
Faye::WebSocket.load_adapter('thin')
我在这里找到了这个解决方案:https://github.com/ryanb/private_pub/issues/39#issuecomment-4225647 https://github.com/ryanb/private_pub/issues/39#issuecomment-4225647
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)