diff --git a/go/internal/handler/handler.go b/go/internal/handler/handler.go index 0877a15..c037a74 100644 --- a/go/internal/handler/handler.go +++ b/go/internal/handler/handler.go @@ -119,7 +119,8 @@ type GetLivekitTokenRequest struct { } type GetLivekitTokenResponse struct { - Token string `json:"token"` + Token string `json:"token"` + ServerUrl string `json:"server_url"` } // Depot DTOs @@ -1083,7 +1084,7 @@ func (h *Handler) GetLivekitToken(w http.ResponseWriter, r *http.Request) { } w.Header().Set("Content-Type", "application/json") - json.NewEncoder(w).Encode(GetLivekitTokenResponse{Token: token}) + json.NewEncoder(w).Encode(GetLivekitTokenResponse{Token: token, ServerUrl: h.livekitClient.ServerUrl()}) } func extractBearerToken(r *http.Request) string { diff --git a/go/internal/livekit/client.go b/go/internal/livekit/client.go index e0791e2..a2cea03 100644 --- a/go/internal/livekit/client.go +++ b/go/internal/livekit/client.go @@ -9,6 +9,7 @@ import ( type Client interface { GetJoinToken(roomId string, identity string) (string, error) + ServerUrl() string } type clientImpl struct { @@ -25,6 +26,10 @@ func NewClient() Client { } } +func (c *clientImpl) ServerUrl() string { + return c.hostUrl +} + func (c *clientImpl) GetJoinToken(room, identity string) (string, error) { at := auth.NewAccessToken(c.apiKey, c.apiSecret) grant := &auth.VideoGrant{