問題一覧に戻る
上級APIとリアルタイム
問題64: WebSocket - Action Cable

Railsの統合WebSocketフレームワークであるAction Cableを使用してリアルタイム機能を実装する方法を学習します。ライブチャット、通知、共同編集、ページ更新なしで接続されたクライアントにデータをプッシュするリアルタイム更新などの機能を構築します。

# チャネルクラスを定義
class ChatChannel < ApplicationCable::
def subscribed
# ストリームを購読
"chat_room_#{params[:room_id]}"
end

def speak(data)
# 購読者にブロードキャスト
ActionCable.server. "chat_room_#{params[:room_id]}",
message: data['message']
end
end

# クライアント購読
App.chat = App.cable.subscriptions. "ChatChannel",
room_id: roomId