1

Rails でチャット ルーム タイプのシステムを構築しています。アクティブなユーザーのリストを更新できるように、サーバー上でユーザーがチャネルを離れたとき (ページを閉じたとき) を検出する必要があります。GitHub でドキュメントとサンプルを検索しましたが、答えが見つからないようです。

以前、切断イベントをトリガーする SignalR を使用したことがありますが、Rails 5 に相当するもの (実際に存在する場合) が見つかりません。

チャネル クラスでサブスクライブされていないメソッドの例を見ることができますが、新しいページに移動したり、ブラウザーを完全に閉じたりしても、これは決してトリガーされません。

編集:これが役立つかどうかはわかりませんが、ターボリンクは使用していません。

4

2 に答える 2

1

これは、Rails 5 のベータ 2 の問題でした。最新バージョンのベータ 4 で試してみたところ、期待どおりにトリガーされるようになりました。

参照用の github の問題は次のとおりです: https://github.com/rails/rails/pull/23715

于 2016-06-11T17:19:16.293 に答える
0

これを試して

App.chatroom.disconnected()
=> yourChannel stopped streaming from chatroom #rails terminal

App.chatroom = App.cable.subscriptions.create({channel: 
     'yourChannel'}, {

     disconnected: function () {
       App.cable.subscriptions.remove(this)
       this.perform('unsubscribed') #in the channel have a method 'unsubscibed' to update users
     },
 )}
于 2017-07-11T14:50:03.073 に答える