Skip to content

Commit 2492101

Browse files
authored
Add RoomEvent.TokenRefreshed (#605)
* Add RoomEvent.TokenRefreshed * revert unwanted * only set on success * Create healthy-ghosts-tease.md * close processor on stream close
1 parent 28fc1b2 commit 2492101

File tree

3 files changed

+26
-0
lines changed

3 files changed

+26
-0
lines changed

.changeset/healthy-ghosts-tease.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@livekit/rtc-node": patch
3+
---
4+
5+
Add RoomEvent.TokenRefreshed

packages/livekit-rtc/src/audio_stream.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ class AudioStreamSource implements UnderlyingSource<AudioFrame> {
106106
case 'eos':
107107
FfiClient.instance.off(FfiClientEvent.FfiEvent, this.onEvent);
108108
this.controller.close();
109+
this.frameProcessor?.close();
109110
break;
110111
}
111112
};

packages/livekit-rtc/src/room.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,9 @@ export class Room extends (EventEmitter as new () => TypedEmitter<RoomCallbacks>
9696

9797
private preConnectEvents: FfiEvent[] = [];
9898

99+
private _token?: string;
100+
private _serverUrl?: string;
101+
99102
e2eeManager?: E2EEManager;
100103
connectionState: ConnectionState = ConnectionState.CONN_DISCONNECTED;
101104

@@ -118,6 +121,16 @@ export class Room extends (EventEmitter as new () => TypedEmitter<RoomCallbacks>
118121
return this.ffiHandle != undefined && this.connectionState != ConnectionState.CONN_DISCONNECTED;
119122
}
120123

124+
/** @internal */
125+
get token(): string | undefined {
126+
return this._token;
127+
}
128+
129+
/** @internal */
130+
get serverUrl(): string | undefined {
131+
return this._serverUrl;
132+
}
133+
121134
/**
122135
* Gets the room's server ID. This ID is assigned by the LiveKit server
123136
* and is unique for each room session.
@@ -224,6 +237,8 @@ export class Room extends (EventEmitter as new () => TypedEmitter<RoomCallbacks>
224237
this.ffiHandle = new FfiHandle(cb.message.value.room!.handle!.id!);
225238
this.e2eeManager = e2eeEnabled && new E2EEManager(this.ffiHandle.handle, e2eeOptions);
226239

240+
this._token = token;
241+
this._serverUrl = url;
227242
this.info = cb.message.value.room!.info;
228243
this.connectionState = ConnectionState.CONN_CONNECTED;
229244
this.localParticipant = new LocalParticipant(
@@ -621,6 +636,9 @@ export class Room extends (EventEmitter as new () => TypedEmitter<RoomCallbacks>
621636
} catch (e: unknown) {
622637
log.warn(`RoomEvent.ParticipantEncryptionStatusChanged: ${(e as Error).message}`);
623638
}
639+
} else if (ev.case === 'tokenRefreshed') {
640+
this._token = ev.value.token;
641+
this.emit('tokenRefreshed');
624642
}
625643
};
626644

@@ -842,6 +860,7 @@ export type RoomCallbacks = {
842860
roomSidChanged: (sid: string) => void;
843861
roomUpdated: () => void;
844862
moved: () => void;
863+
tokenRefreshed: () => void;
845864
};
846865

847866
export enum RoomEvent {
@@ -876,4 +895,5 @@ export enum RoomEvent {
876895
Reconnected = 'reconnected',
877896
RoomUpdated = 'roomUpdated',
878897
Moved = 'moved',
898+
TokenRefreshed = 'tokenRefreshed',
879899
}

0 commit comments

Comments
 (0)