Tracks presence-channel membership for one instance. Keyed internally
by socket_id so a user with multiple tabs/connections works correctly:
member_added only fires for a user_id's first connection,
member_removed only fires when their last connection drops.
Every instance gets its own Presence process (named via an internal naming helper), so two embedded instances never share membership state.
This is the in-memory presence store used by PusherServer.Backend.Local
(single node). When :redis_url is set the Redis backend keeps presence in
Redis instead and this process is not started.
Summary
Functions
Returns true if this is the first connection for that user_id on the channel.
Returns a specification to start this module under a supervisor.
Returns list of {user_id, user_info} for current unique members.
Returns {is_last_connection_for_user, user_id} or {false, nil} if not found.
Functions
Returns true if this is the first connection for that user_id on the channel.
Returns a specification to start this module under a supervisor.
See Supervisor.
Returns list of {user_id, user_info} for current unique members.
Returns {is_last_connection_for_user, user_id} or {false, nil} if not found.