steep-balloon-41261
05/20/2023, 11:25 AMbrief-refrigerator-69901
05/20/2023, 1:10 PMmagnificent-art-43333
05/20/2023, 1:10 PMdry-farmer-50272
05/20/2023, 1:18 PMimport {AudioPresets, ConnectionQuality, DataPacket_Kind, Room, RoomEvent, Track, VideoPresets} from 'livekit-client';
const encoder = new TextEncoder()
const decoder = new TextDecoder()
class Client {
constructor() {
this.room = new Room({
videoCaptureDefaults: {
resolution: VideoPresets.h216.resolution
},
adaptiveStream: false,
publishDefaults: {
videoCodec: "h264",
red: false,
dtx: false,
simulcast: false,
}
});
this.room.on(RoomEvent.DataReceived, OnDataReceived)
}
async sendMessage(_data_, _participantSIDs_) {
const strData = JSON.stringify(_data_)
const encodedData = encoder.encode(strData)
await this.room.localParticipant.publishData(encodedData, DataPacket_Kind.RELIABLE)
}
async connect(_token_) {
`await this.room.connect(<ws://localhost:7880>
, token, {`
autoSubscribe: true, maxRetries: 3, peerConnectionTimeout: 15_000, rtcConfig: {
bundlePolicy: "max-bundle", rtcpMuxPolicy: "require"
}
})
}
}
function OnDataReceived(_payload_, _participant_, _kind_) {
const strData = decoder.decode(_payload_)
console.log('data received', strData, _participant_, _kind_)
}
const client = new Client()
export {client}
brief-refrigerator-69901
05/20/2023, 1:21 PMcanPublishData: true
? Ref: https://docs.livekit.io/concepts/authentication/#video-grantdry-farmer-50272
05/20/2023, 1:22 PMdry-farmer-50272
05/20/2023, 1:22 PMfunc getJoinToken(apiKey, apiSecret, room, identity string) (string, error) {
at := auth.NewAccessToken("devkey", "secretsecretsecretsecretsecretsecretsecretsecret")
CanPublish := true
CanSubscribe := true
CanPublishData := true
grant := &auth.VideoGrant{
RoomCreate: false,
RoomList: false,
RoomJoin: true,
Room: room,
CanPublish: &CanPublish,
CanSubscribe: &CanSubscribe,
CanPublishData: &CanPublishData,
CanPublishSources: nil,
CanUpdateOwnMetadata: nil,
Hidden: false,
}
at.AddGrant(grant).SetIdentity(identity).SetValidFor(time.Hour)
return at.ToJWT()
}
dry-farmer-50272
05/20/2023, 1:25 PMbrief-refrigerator-69901
05/20/2023, 1:27 PMsendMessage
method seems correct. May I ask you if you are using the LK Cloud or your own LK Server?dry-farmer-50272
05/20/2023, 1:28 PMdry-farmer-50272
05/20/2023, 1:28 PMmagnificent-art-43333
05/20/2023, 1:42 PMdry-farmer-50272
05/20/2023, 1:45 PMmagnificent-art-43333
05/20/2023, 1:48 PMdry-farmer-50272
05/20/2023, 1:55 PMdry-farmer-50272
05/20/2023, 3:16 PMbrief-refrigerator-69901
05/20/2023, 4:01 PMbrief-refrigerator-69901
05/20/2023, 4:01 PMdry-farmer-50272
05/20/2023, 4:02 PMdry-farmer-50272
05/20/2023, 4:03 PMdry-farmer-50272
05/20/2023, 5:40 PMbrief-refrigerator-69901
05/20/2023, 5:40 PMdry-elephant-14928
05/20/2023, 5:45 PMdry-elephant-14928
05/20/2023, 5:46 PMdry-farmer-50272
05/20/2023, 5:47 PMmagnificent-art-43333
05/21/2023, 1:50 AM