在Rails上使用javascript'onbeforeload'

时间:2018-07-18 08:59:33

标签: javascript ruby-on-rails javascript-events rubygems

我正在创建一个Web应用程序,允许游戏玩家找到处于类似水平的伙伴。我正在使用Ruby on Rails5。

这样做,我创建了一个玩家模型来存储玩家数据。该播放器模型充当我的匹配算法通过队列查找匹配项的队列。

一个障碍是游戏者必须在排队时保持浏览器打开。如果玩家关闭了我们的应用程序或互联网连接断开,则必须将玩家从队列中删除(=破坏玩家的玩家模型)。

我首先使用javascript'onbeforeload'或'navigator.offline'解决了问题。但是,这在导轨上不起作用。

还有其他方法可以跟踪玩家的currnet在线状态吗?

与我的项目的链接位于my github

编辑

我尝试使用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) %>
    });

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

0 个答案:

没有答案