Websocket-Rails频道'在WebSocket握手期间出错'

时间:2015-07-09 19:09:29

标签: javascript ruby-on-rails websocket puma

我正在尝试使用websocket-rails在他们进入我的网站时广播实时路线。但是,我无法发布任何消息。我已经阅读了所有可以找到的帮助,而且我似乎无法找到解决方案。

以下是我在application.html.erb中的javascript:

 var route_name = window.location.pathname + window.location.search;

 $.post("/realtimeroutes",
            { data: { route_name: route_name} },
            function(response) {

            }
    );

此数据将传递给rails控制器方法realtime_routes,如下所示:

 def realtime_routes
     puts '*** The Route Data is: ' + params[:data][:route_name]);
     new_route = RouteCatcher.new(route_name: params[:data][:route_name]

     if new_route.save
        route = {route_name: params[:data][:route_name]}

        puts '*** Right before the Message is sent ***'

        WebsocketRails[:new_route].trigger('new', route)

        puts '*** Right After the Message is sent ***'
        render nothing: true
     else
        render nothing: true
     end
 end

到目前为止一切都很好。数据库中正在进行更新,并且前后消息都打印到控制台,但没有触发Websocket消息。

接下来我在realtime.html.erb中听到这个javascript:

    var dispatcher = new WebSocketRails(window.location.host + '/websocket');

    var channel = dispatcher.subscribe('new_route');

    channel.bind('new', function(route) {
        console.log('********** Inside Bind Event');
        console.log('********** a new route '+ route.route_name +' arrived!');
    });

绑定事件没有收到任何内容,当我在Chrome上查看控制台时,我得到:

 'Uncaught ReferenceError: WebSocketRails is not defined'

所以我完全被困在这里,因为我已经按照我能找到的每一份文件,真的不知道该往哪里去。非常感谢任何帮助。

更新:这是一个初始化错误,因为WebSocketRails是在应用程序js的其余部分之前呈现的。

然而,现在我收到了错误:

 WebSocket connection to 'ws://localhost:3000/websocket' failed: Error during WebSocket handshake: Unexpected response code: 301

在进一步阅读有关同一错误的其他人之后,似乎谨慎地提到我在生产中使用带有SSL的AWS elasticbeanstalk上的Puma。

0 个答案:

没有答案