利用Javascript';在加载之前';在轨

利用Javascript';在加载之前';在轨,javascript,ruby-on-rails,rubygems,dom-events,Javascript,Ruby On Rails,Rubygems,Dom Events,我正在创建一个web应用程序,允许玩家找到一个级别类似的合作伙伴。我正在使用RubyonRails5 为此,我创建了一个玩家模型来存储玩家数据。这个播放器模型作为一个队列,让我的匹配算法遍历并找到匹配项 其中一个障碍是,玩家在排队时必须保持浏览器打开。如果玩家关闭我们的应用程序或internet连接中断,则必须将玩家从队列中删除(=销毁玩家的玩家模型) 我首先使用javascript“onbeforeload”或“navigator.offline”来解决这个问题。但是,这在rails上不起作用

我正在创建一个web应用程序,允许玩家找到一个级别类似的合作伙伴。我正在使用RubyonRails5

为此,我创建了一个玩家模型来存储玩家数据。这个播放器模型作为一个队列,让我的匹配算法遍历并找到匹配项

其中一个障碍是,玩家在排队时必须保持浏览器打开。如果玩家关闭我们的应用程序或internet连接中断,则必须将玩家从队列中删除(=销毁玩家的玩家模型)

我首先使用javascript“onbeforeload”或“navigator.offline”来解决这个问题。但是,这在rails上不起作用

有没有其他方法来跟踪玩家的在线状态

链接到我的项目是在

编辑

我尝试使用pusher检查其连接状态以删除模型

pusher.connection.bind('unavailable', function() {
        <% puts "unavailable" %>
        <% Player.find_by_user_name(current_user.user_name).try(:destroy) %>
    });

pusher.connection.bind('disconnected', function() {
        <% puts "disconnected" %>
        <% Player.find_by_user_name(current_user.user_name).try(:destroy) %>
    });
pusher.connection.bind('unavailable',function(){
});
pusher.connection.bind('disconnected',function()){
});

但是,仅当页面重新加载时,它仍在删除。即使在浏览器关闭后,推送器也不会断开连接。

我没有准确的答案,但我可以看到您正在使用推送器。您可能可以使用它将队列中的任何玩家连接到套接字,并在匹配时检查套接字连接状态occurs@Logar谢谢你的建议,我试过使用Pusher,但它不起作用。。。