ユーザーがオンラインかどうかに大きく依存するコードがあります。
現在、ActionCable を次のようにセットアップしています。
class DriverRequestsChannel < ApplicationCable::Channel
def subscribed
stream_from "requests_#{current_user.id}"
end
def unsubscribed
current_user.unavailable! if current_user.available?
end
end
ここで取り上げたいのは、ユーザーがオフラインになる代わりにブラウザを閉じただけの場合です。ただし、購読解除の問題は、ページが更新されることです。そのため、ページを更新するたびに、unsubscribed
. したがって、利用可能であると考えていても、利用不可として表示されます。
ここで重要なことは、使用可能であることはデフォルトではないため、元に戻すことができるということです。これは、ユーザーがリクエストを受け取るために選択するものです。
このようなケースを処理する最善の方法を知っている人はいますか?