Files
once-campfire/app/channels/presence_channel.rb
Kevin McConnell df76a227dc Hello world
First open source release of Campfire 🎉
2025-08-21 09:31:59 +01:00

28 lines
557 B
Ruby

class PresenceChannel < RoomChannel
on_subscribe :present, unless: :subscription_rejected?
on_unsubscribe :absent, unless: :subscription_rejected?
def present
membership.present
broadcast_read_room
end
def absent
membership.disconnected
end
def refresh
membership.refresh_connection
end
private
def membership
@room.memberships.find_by(user: current_user)
end
def broadcast_read_room
ActionCable.server.broadcast "user_#{current_user.id}_reads", { room_id: membership.room_id }
end
end