From 433fef99925a2f7bc9768279437b9b23b1f347c2 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 14 Mar 2022 16:05:16 +0800 Subject: [PATCH] add Signal message --- .../msg_gateway/gate/open_im_media/room.go | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 internal/msg_gateway/gate/open_im_media/room.go diff --git a/internal/msg_gateway/gate/open_im_media/room.go b/internal/msg_gateway/gate/open_im_media/room.go new file mode 100644 index 000000000..0a394df48 --- /dev/null +++ b/internal/msg_gateway/gate/open_im_media/room.go @@ -0,0 +1,57 @@ +package open_im_media + +import ( + "context" + "github.com/livekit/protocol/livekit" + lksdk "github.com/livekit/server-sdk-go" + "time" + + "github.com/livekit/protocol/auth" +) + +const ( + MediaAddress = "ws://43.128.5.63:7880" + ApiKey = "" + ApiSecret = "" +) + +var roomClient *lksdk.RoomServiceClient + +type Media struct { + MediaAddress string + ApiKey string + ApiSecret string +} + +func NewMedia() *Media { + return &Media{MediaAddress: MediaAddress, + ApiKey: ApiKey, + ApiSecret: ApiSecret} +} +func (m *Media) GetUrl() string { + return m.MediaAddress +} +func (m *Media) GetJoinToken(room, identity string) (string, error) { + at := auth.NewAccessToken(m.ApiKey, m.ApiSecret) + grant := &auth.VideoGrant{ + RoomJoin: true, + Room: room, + } + at.AddGrant(grant). + SetIdentity(identity). + SetValidFor(time.Hour) + + return at.ToJWT() +} + +func init() { + roomClient = lksdk.NewRoomServiceClient(MediaAddress, ApiKey, ApiSecret) +} + +func (m *Media) CreateRoom(roomName string) (*livekit.Room, error) { + return roomClient.CreateRoom(context.Background(), &livekit.CreateRoomRequest{ + Name: roomName, + EmptyTimeout: 60 * 3, + }) + +}