updateMemberMeta

View as Markdown

updateMemberMeta

  • updateMemberMeta(params): Promise<void>

Updates a member’s metadata in only the specified fields. This is different from setMemberMeta, which replaces the whole metadata object.

Parameters

params
objectRequired

Object containing the parameters of the method.

memberId
string

ID of the member to affect. If omitted, affects the current member.

meta
Record<string, unknown>Required

The update to the metadata.

Returns

Promise<void>

Example

In this example, we set metadata for a member as soon as they join the room. After 5 seconds, we update the metadata for that member. This example assumes that there is a RoomSession already active and that members are joining the room.

1import { SignalWire } from "@signalwire/realtime-api";
2
3// Initialize the SignalWire client
4const client = await SignalWire({ project: "ProjectID Here", token: "Token Here" });
5
6// Access video client from the main client
7const videoClient = client.video;
8
9// Setup listener for when a room starts
10await videoClient.listen({
11 onRoomStarted: async (roomsession) => {
12 console.log("Room started", roomsession.displayName);
13
14 roomsession.listen({
15 onMemberJoined: async (member) => {
16 console.log("Member joined", member.name);
17 // set metadta for the member
18 await roomsession.setMemberMeta({
19 memberId: member.id,
20 meta: {
21 name: member.name,
22 foo: "bar",
23 },
24 });
25 // get member meta
26 const memberMeta = await roomsession.getMemberMeta({
27 memberId: member.id
28 });
29 console.log("Member meta", memberMeta.meta);
30
31 // update member meta after 5 seconds
32
33 setTimeout(async () => {
34 await roomsession.updateMemberMeta({
35 memberId: member.id,
36 meta: {
37 name: "New name",
38 foo: "foobar",
39 },
40 });
41 // get member meta
42 console.log("Member meta after update", await roomsession.getMemberMeta({
43 memberId: member.id
44 }));
45 }, 5000)
46 },
47 })
48 }
49})