Table of Contents

Class LiveKitRoomService

Namespace
LiveKit.Services
Assembly
LiveKit.AspNetCore.ServerSdk.dll

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

httpClient HttpClient
logger ILogger<LiveKitRoomService>
_tokenService ILiveKitTokenService

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

request CreateRoomRequest
cancellationToken CancellationToken

Returns

Task<Room>

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

request DeleteRoomRequest
cancellationToken CancellationToken

Returns

Task<DeleteRoomResponse>

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

request ForwardParticipantRequest
cancellationToken CancellationToken

Returns

Task<ForwardParticipantResponse>

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

request RoomParticipantIdentity
cancellationToken CancellationToken

Returns

Task<ParticipantInfo>

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

request ListParticipantsRequest
cancellationToken CancellationToken

Returns

Task<ListParticipantsResponse>

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

request ListRoomsRequest
cancellationToken CancellationToken

Returns

Task<ListRoomsResponse>

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

request MoveParticipantRequest
cancellationToken CancellationToken

Returns

Task<MoveParticipantResponse>

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

request MuteRoomTrackRequest
cancellationToken CancellationToken

Returns

Task<MuteRoomTrackResponse>

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

request PerformRpcRequest
cancellationToken CancellationToken

Returns

Task<PerformRpcResponse>

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

request RoomParticipantIdentity
cancellationToken CancellationToken

Returns

Task<RemoveParticipantResponse>

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

request SendDataRequest
cancellationToken CancellationToken

Returns

Task<SendDataResponse>

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

request UpdateParticipantRequest
cancellationToken CancellationToken

Returns

Task<ParticipantInfo>

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

request UpdateRoomMetadataRequest
cancellationToken CancellationToken

Returns

Task<Room>

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

request UpdateSubscriptionsRequest
cancellationToken CancellationToken

Returns

Task<UpdateSubscriptionsResponse>

Exceptions

LiveKitApiException

Thrown when the server returns a non-success HTTP status code.