Class: LiveKit::RoomServiceClient
- Inherits:
-
Twirp::Client
- Object
- Twirp::Client
- LiveKit::RoomServiceClient
- Includes:
- AuthMixin
- Defined in:
- lib/livekit/room_service_client.rb
Instance Attribute Summary collapse
-
#api_key ⇒ Object
Returns the value of attribute api_key.
-
#api_secret ⇒ Object
Returns the value of attribute api_secret.
Instance Method Summary collapse
- #create_room(name, empty_timeout: nil, max_participants: nil, egress: nil, metadata: nil, min_playout_delay: nil, max_playout_delay: nil, sync_streams: nil) ⇒ Object
- #delete_room(room:) ⇒ Object
- #get_participant(room:, identity:) ⇒ Object
-
#initialize(base_url, api_key: nil, api_secret: nil) ⇒ RoomServiceClient
constructor
A new instance of RoomServiceClient.
- #list_participants(room:) ⇒ Object
- #list_rooms(names: nil) ⇒ Object
- #mute_published_track(room:, identity:, track_sid:, muted:) ⇒ Object
- #remove_participant(room:, identity:) ⇒ Object
- #send_data(room:, data:, kind:, destination_sids: [], destination_identities: []) ⇒ Object
- #update_participant(room:, identity:, metadata: nil, permission: nil, name: nil) ⇒ Object
- #update_room_metadata(room:, metadata:) ⇒ Object
- #update_subscriptions(room:, identity:, track_sids:, subscribe:) ⇒ Object
Methods included from AuthMixin
Constructor Details
#initialize(base_url, api_key: nil, api_secret: nil) ⇒ RoomServiceClient
Returns a new instance of RoomServiceClient.
10 11 12 13 14 |
# File 'lib/livekit/room_service_client.rb', line 10 def initialize(base_url, api_key: nil, api_secret: nil) super(File.join(base_url, "/twirp")) @api_key = api_key @api_secret = api_secret end |
Instance Attribute Details
#api_key ⇒ Object
Returns the value of attribute api_key.
8 9 10 |
# File 'lib/livekit/room_service_client.rb', line 8 def api_key @api_key end |
#api_secret ⇒ Object
Returns the value of attribute api_secret.
8 9 10 |
# File 'lib/livekit/room_service_client.rb', line 8 def api_secret @api_secret end |
Instance Method Details
#create_room(name, empty_timeout: nil, max_participants: nil, egress: nil, metadata: nil, min_playout_delay: nil, max_playout_delay: nil, sync_streams: nil) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/livekit/room_service_client.rb', line 16 def create_room(name, empty_timeout: nil, max_participants: nil, egress: nil, metadata: nil, min_playout_delay: nil, max_playout_delay: nil, sync_streams: nil ) self.rpc( :CreateRoom, Proto::CreateRoomRequest.new( name: name, empty_timeout: empty_timeout, max_participants: max_participants, egress: egress, metadata: , min_playout_delay: min_playout_delay, max_playout_delay: max_playout_delay, sync_streams: sync_streams ), headers: auth_header(roomCreate: true), ) end |
#delete_room(room:) ⇒ Object
49 50 51 52 53 54 55 |
# File 'lib/livekit/room_service_client.rb', line 49 def delete_room(room:) self.rpc( :DeleteRoom, Proto::DeleteRoomRequest.new(room: room), headers: auth_header(roomCreate: true), ) end |
#get_participant(room:, identity:) ⇒ Object
73 74 75 76 77 78 79 |
# File 'lib/livekit/room_service_client.rb', line 73 def get_participant(room:, identity:) self.rpc( :GetParticipant, Proto::RoomParticipantIdentity.new(room: room, identity: identity), headers: auth_header(roomAdmin: true, room: room), ) end |
#list_participants(room:) ⇒ Object
65 66 67 68 69 70 71 |
# File 'lib/livekit/room_service_client.rb', line 65 def list_participants(room:) self.rpc( :ListParticipants, Proto::ListParticipantsRequest.new(room: room), headers: auth_header(roomAdmin: true, room: room), ) end |
#list_rooms(names: nil) ⇒ Object
41 42 43 44 45 46 47 |
# File 'lib/livekit/room_service_client.rb', line 41 def list_rooms(names: nil) self.rpc( :ListRooms, Proto::ListRoomsRequest.new(names: names), headers: auth_header(roomList: true), ) end |
#mute_published_track(room:, identity:, track_sid:, muted:) ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/livekit/room_service_client.rb', line 89 def mute_published_track(room:, identity:, track_sid:, muted:) self.rpc( :MutePublishedTrack, Proto::MuteRoomTrackRequest.new( room: room, identity: identity, track_sid: track_sid, muted: muted, ), headers: auth_header(roomAdmin: true, room: room), ) end |
#remove_participant(room:, identity:) ⇒ Object
81 82 83 84 85 86 87 |
# File 'lib/livekit/room_service_client.rb', line 81 def remove_participant(room:, identity:) self.rpc( :RemoveParticipant, Proto::RoomParticipantIdentity.new(room: room, identity: identity), headers: auth_header(roomAdmin: true, room: room), ) end |
#send_data(room:, data:, kind:, destination_sids: [], destination_identities: []) ⇒ Object
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
# File 'lib/livekit/room_service_client.rb', line 133 def send_data(room:, data:, kind:, destination_sids: [], destination_identities: [] ) self.rpc( :SendData, Proto::SendDataRequest.new( room: room, data: data, kind: kind, destination_sids: destination_sids, destination_identities: destination_identities, ), headers: auth_header(roomAdmin: true, room: room), ) end |
#update_participant(room:, identity:, metadata: nil, permission: nil, name: nil) ⇒ Object
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/livekit/room_service_client.rb', line 102 def update_participant(room:, identity:, metadata: nil, permission: nil, name: nil) req = Proto::UpdateParticipantRequest.new(room: room, identity: identity) if req. = end if req. = end if name req.name = name end self.rpc( :UpdateParticipant, req, headers: auth_header(roomAdmin: true, room: room), ) end |
#update_room_metadata(room:, metadata:) ⇒ Object
57 58 59 60 61 62 63 |
# File 'lib/livekit/room_service_client.rb', line 57 def (room:, metadata:) self.rpc( :UpdateRoomMetadata, Proto::UpdateRoomMetadataRequest.new(room: room, metadata: ), headers: auth_header(roomAdmin: true, room: room), ) end |
#update_subscriptions(room:, identity:, track_sids:, subscribe:) ⇒ Object
120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'lib/livekit/room_service_client.rb', line 120 def update_subscriptions(room:, identity:, track_sids:, subscribe:) self.rpc( :UpdateSubscriptions, Proto::UpdateSubscriptionsRequest.new( room: room, identity: identity, track_sids: track_sids, subscribe: subscribe, ), headers: auth_header(roomAdmin: true, room: room), ) end |