steep-balloon-41261
05/27/2023, 10:21 AMdry-elephant-14928
05/27/2023, 5:58 PMdry-farmer-50272
05/28/2023, 3:12 AMdry-elephant-14928
05/28/2023, 3:31 AMdry-farmer-50272
05/28/2023, 7:18 AMdry-farmer-50272
05/28/2023, 7:18 AMvar RoomClient client
type client struct {
*lksdk.RoomServiceClient
}
func InitLiveKit() {
RoomClient = client{lksdk.NewRoomServiceClient(fmt.Sprintf("<http://%s:%s>", os.Getenv("LIVEKIT_HOST"), os.Getenv("LIVEKIT_PORT")), os.Getenv("LIVEKIT_API_KEY"), os.Getenv("LIVEKIT_SECRET_KEY"))}
}
func (c *client) ConnectToRoom(roomName, identity string) (*Session, error) {
r, err := lksdk.ConnectToRoom(fmt.Sprintf("<http://%s:%s>", os.Getenv("LIVEKIT_HOST"), os.Getenv("LIVEKIT_PORT")), lksdk.ConnectInfo{
APIKey: os.Getenv("LIVEKIT_API_KEY"),
APISecret: os.Getenv("LIVEKIT_SECRET_KEY"),
RoomName: roomName,
ParticipantIdentity: identity,
}, &lksdk.RoomCallback{
OnParticipantConnected: onUserConnected,
OnParticipantDisconnected: onUserDisconnected,
ParticipantCallback: lksdk.ParticipantCallback{
OnDataReceived: onDataReceived,
},
})
if err != nil {
return nil, err
}
return &Session{
Room: r,
Key: roomName,
}, nil
}
func (s *Session) SendMessage(msg any, sid ...string) error {
bytes, err := json.Marshal(msg)
if err != nil {
return err
}
return s.LocalParticipant.PublishData(bytes, livekit.DataPacket_RELIABLE, sid)
}
func onUserConnected(rp *lksdk.RemoteParticipant) {
if rp.Identity() == "server" || rp.Metadata() == "" {
return
}
log.Println("user connected", rp.Identity(), rp.Metadata())
time.Sleep(1 * time.Second)
//do on user connects stuff
//will be immediately printed but clients receives this message randomly
log.Println("room data sent")
}
func onUserDisconnected(rp *lksdk.RemoteParticipant) {
log.Println("user disconnected")
}
func onDataReceived(data []byte, rp *lksdk.RemoteParticipant) {
log.Println("data received:", string(data), rp.Name())
}
dry-farmer-50272
05/29/2023, 10:28 PMdry-elephant-14928
05/30/2023, 5:31 AMlog.Println("room data sent")
, without any calls to SendMessage
dry-elephant-14928
05/30/2023, 5:31 AMdry-farmer-50272
05/30/2023, 6:43 AMdry-farmer-50272
05/30/2023, 6:43 AM