Class LiveKitRoomService
Service for managing LiveKit rooms and participants.
Provides methods for room creation, participant management, and room operations. See LiveKit Room Service Documentation for more information.
public sealed class LiveKitRoomService : TwirpClient, ILiveKitRoomService
- Inheritance
-
LiveKitRoomService
- Implements
- Inherited Members
Constructors
LiveKitRoomService(HttpClient, ILogger<LiveKitRoomService>, ILiveKitTokenService)
Initializes a new instance of the LiveKitRoomService class.
public LiveKitRoomService(HttpClient httpClient, ILogger<LiveKitRoomService> logger, ILiveKitTokenService _tokenService)
Parameters
httpClientHttpClientloggerILogger<LiveKitRoomService>_tokenServiceILiveKitTokenService
Methods
CreateRoomAsync(CreateRoomRequest, CancellationToken)
Creates a room with settings. Requires roomCreate permission.
This method is optional; rooms are automatically created when clients connect to them for the first time.
public Task<Room> CreateRoomAsync(CreateRoomRequest request, CancellationToken cancellationToken = default)
Parameters
requestCreateRoomRequestcancellationTokenCancellationToken
Returns
Exceptions
- LiveKitApiException
Thrown when the server returns a non-success HTTP status code.
DeleteRoomAsync(DeleteRoomRequest, CancellationToken)
Deletes an existing room by name or id. Requires roomCreate permission.
DeleteRoom will disconnect all participants that are currently in the room.
public Task<DeleteRoomResponse> DeleteRoomAsync(DeleteRoomRequest request, CancellationToken cancellationToken = default)
Parameters
requestDeleteRoomRequestcancellationTokenCancellationToken
Returns
Exceptions
- LiveKitApiException
Thrown when the server returns a non-success HTTP status code.
ForwardParticipantAsync(ForwardParticipantRequest, CancellationToken)
Cloud-only: Forwards a connected participant's track(s) to another room. Requires roomAdmin and destinationRoom permissions.
The forwarding will stop when the participant leaves the room or RemoveParticipant has been called in the destination room.
public Task<ForwardParticipantResponse> ForwardParticipantAsync(ForwardParticipantRequest request, CancellationToken cancellationToken = default)
Parameters
requestForwardParticipantRequestcancellationTokenCancellationToken
Returns
Exceptions
- LiveKitApiException
Thrown when the server returns a non-success HTTP status code.
GetParticipantAsync(RoomParticipantIdentity, CancellationToken)
Gets information on a specific participant. Requires roomAdmin permission.
public Task<ParticipantInfo> GetParticipantAsync(RoomParticipantIdentity request, CancellationToken cancellationToken = default)
Parameters
requestRoomParticipantIdentitycancellationTokenCancellationToken
Returns
Exceptions
- LiveKitApiException
Thrown when the server returns a non-success HTTP status code.
ListParticipantsAsync(ListParticipantsRequest, CancellationToken)
Lists participants in a room. Requires roomAdmin permission.
public Task<ListParticipantsResponse> ListParticipantsAsync(ListParticipantsRequest request, CancellationToken cancellationToken = default)
Parameters
requestListParticipantsRequestcancellationTokenCancellationToken
Returns
Exceptions
- LiveKitApiException
Thrown when the server returns a non-success HTTP status code.
ListRoomsAsync(ListRoomsRequest, CancellationToken)
Lists rooms that are active on the server. Requires roomList permission.
public Task<ListRoomsResponse> ListRoomsAsync(ListRoomsRequest request, CancellationToken cancellationToken = default)
Parameters
requestListRoomsRequestcancellationTokenCancellationToken
Returns
Exceptions
- LiveKitApiException
Thrown when the server returns a non-success HTTP status code.
MoveParticipantAsync(MoveParticipantRequest, CancellationToken)
Cloud-only: Moves a connected participant to a different room. Requires roomAdmin and destinationRoom permissions.
The participant will be removed from the current room and added to the destination room.
public Task<MoveParticipantResponse> MoveParticipantAsync(MoveParticipantRequest request, CancellationToken cancellationToken = default)
Parameters
requestMoveParticipantRequestcancellationTokenCancellationToken
Returns
Exceptions
- LiveKitApiException
Thrown when the server returns a non-success HTTP status code.
MutePublishedTrackAsync(MuteRoomTrackRequest, CancellationToken)
Mutes or unmutes a participant's track. Requires roomAdmin permission.
public Task<MuteRoomTrackResponse> MutePublishedTrackAsync(MuteRoomTrackRequest request, CancellationToken cancellationToken = default)
Parameters
requestMuteRoomTrackRequestcancellationTokenCancellationToken
Returns
Exceptions
- LiveKitApiException
Thrown when the server returns a non-success HTTP status code.
PerformRpcAsync(PerformRpcRequest, CancellationToken)
Performs an RPC call to a participant.
public Task<PerformRpcResponse> PerformRpcAsync(PerformRpcRequest request, CancellationToken cancellationToken = default)
Parameters
requestPerformRpcRequestcancellationTokenCancellationToken
Returns
Exceptions
- LiveKitApiException
Thrown when the server returns a non-success HTTP status code.
RemoveParticipantAsync(RoomParticipantIdentity, CancellationToken)
Removes a participant from room. Requires roomAdmin permission.
public Task<RemoveParticipantResponse> RemoveParticipantAsync(RoomParticipantIdentity request, CancellationToken cancellationToken = default)
Parameters
requestRoomParticipantIdentitycancellationTokenCancellationToken
Returns
Exceptions
- LiveKitApiException
Thrown when the server returns a non-success HTTP status code.
SendDataAsync(SendDataRequest, CancellationToken)
Sends data over data channel to participants in a room. Requires roomAdmin permission.
public Task<SendDataResponse> SendDataAsync(SendDataRequest request, CancellationToken cancellationToken = default)
Parameters
requestSendDataRequestcancellationTokenCancellationToken
Returns
Exceptions
- LiveKitApiException
Thrown when the server returns a non-success HTTP status code.
UpdateParticipantAsync(UpdateParticipantRequest, CancellationToken)
Updates participant metadata. Will cause updates to be broadcasted to everyone in the room. Requires roomAdmin permission.
public Task<ParticipantInfo> UpdateParticipantAsync(UpdateParticipantRequest request, CancellationToken cancellationToken = default)
Parameters
requestUpdateParticipantRequestcancellationTokenCancellationToken
Returns
Exceptions
- LiveKitApiException
Thrown when the server returns a non-success HTTP status code.
UpdateRoomMetadataAsync(UpdateRoomMetadataRequest, CancellationToken)
Updates room metadata. Will cause updates to be broadcasted to everyone in the room. Requires roomAdmin permission.
public Task<Room> UpdateRoomMetadataAsync(UpdateRoomMetadataRequest request, CancellationToken cancellationToken = default)
Parameters
requestUpdateRoomMetadataRequestcancellationTokenCancellationToken
Returns
Exceptions
- LiveKitApiException
Thrown when the server returns a non-success HTTP status code.
UpdateSubscriptionsAsync(UpdateSubscriptionsRequest, CancellationToken)
Subscribes or unsubscribes a participant from tracks. Requires roomAdmin permission.
public Task<UpdateSubscriptionsResponse> UpdateSubscriptionsAsync(UpdateSubscriptionsRequest request, CancellationToken cancellationToken = default)
Parameters
requestUpdateSubscriptionsRequestcancellationTokenCancellationToken
Returns
Exceptions
- LiveKitApiException
Thrown when the server returns a non-success HTTP status code.