来自Using the JavaScript Client:
请注意服务器URL上缺少协议前缀。不要将http://或ws://添加到传递给新调度程序的URL。 WebSocketRails将为您选择最佳的可用传输并自动添加正确的前缀。
我第一次使用WebSocketRails。我在客户端收到此错误:
WebSocket连接到' ws:// localhost:3000 / websocket'失败:在收到握手响应之前关闭连接
如果我将浏览器导航到http://localhost:3000/websocket
,我会收到我期待的消息。如果我导航到ws
网址,我会收到ERR_DISALLOWED_URL_SCHEME
。所以看起来服务器正在生成消息,但客户端正在尝试错误的协议。
如何强制客户端使用http
协议而非ws
,或强制服务器使用ws
而不是http
广播?
答案 0 :(得分:2)
最后通过挖掘源代码找到了答案。构造函数的第二个参数称为use_websockets
,默认为true
。将其设置为false
显然会强制它使用http
代替ws
。
var dispatcher = new WebSocketRails('localhost:3000/websocket',false);