thirteen-tien-len/app/channels/room_channel.rb
2023-10-23 06:58:18 +00:00

30 lines
579 B
Ruby

class RoomChannel < ApplicationCable::Channel
def subscribed
@room = find_room
stream_for @room
broadcast_to @room, { type: 'ping', from: params[:client_id] }
end
def unsubscribed
Turbo::StreamsChannel.broadcast_remove_to(
find_room,
target: "medium_#{current_client.id}"
)
end
def greet(data)
Turbo::StreamsChannel.broadcast_append_to(
data['to'],
target: 'media',
partial: 'media/medium',
locals: { client_id: data['from'] }
)
end
private
def find_room
Room.new(id: params[:id])
end
end