Occupancy

Occupancy enables you to view the number of users currently online in a room. This feature can be used to display user counts to highlight popular, or trending chat rooms.

Subscribe to room occupancy

Subscribe to a room's occupancy by registering a listener. Occupancy events are emitted whenever the number of online users within a room changes. Use the occupancy.subscribe() method in a room to receive updates:

1

2

3

const {unsubscribe} = room.occupancy.subscribe((event) => {
  console.log(event);
});

Occupancy event structure

The following is the structure of an occupancy event:

JSON

1

2

3

4

5

6

7

{
  "type": "occupancy.updated",
  "occupancy": {
    "connections": 103,
    "presenceMembers": 95
  }
}

The following are the properties of an occupancy event:

PropertyDescriptionType
typeThe type of the occupancy event.String
occupancyThe occupancy data for the room.OccupancyData
connections: The number of connections in the room.Number
presenceMembers: The number of users entered into the presence set of the room.Number

Unsubscribe from room occupancy

Use the unsubscribe() function returned in the subscribe() response to remove a room occupancy listener:

1

2

3

4

5

6

7

// Initial subscription
const { unsubscribe } = room.occupancy.subscribe((event) => {
  console.log(event);
});

// To remove the listener
unsubscribe();

Current room occupancy

The latest occupancy received in realtime (the same mechanism that powers occupancy subscriptions) can be retrieved in a one-off call.

Use the occupancy.current() method to retrieve the most recently received room occupancy:

JavaScript

1

const occupancy = room.occupancy.current();

The following is the structure of the occupancy data:

JSON

1

2

3

4

{
  "connections": 103,
  "presenceMembers": 95,
}

The following are the properties of the occupancy data:

PropertyDescriptionType
connectionsThe number of connections in the room.Number
presenceMembersThe number of users entered into the presence set of the room.Number

Retrieve room occupancy

The occupancy of a room can be retrieved in one-off calls instead of subscribing to updates.

Use the occupancy.get() method to retrieve the occupancy of a room:

1

const occupancy = await room.occupancy.get();

The following is the structure the occupancy data:

JSON

1

2

3

4

{
  "connections": 103,
  "presenceMembers": 95,
}

The following are the properties of an occupancy data:

PropertyDescriptionType
connectionsThe number of connections in the room.Number
presenceMembersThe number of users entered into the presence set of the room.Number
Select...