mirror of
https://github.com/livekit/livekit.git
synced 2026-09-01 20:09:08 +00:00
Make new path for signalling v1.5 support. (#4180)
* Make new path for signalling v1.5 support. To be able to support newer clients to interact with older servers, move signalling v1.5 to new path (`/rtc1`). On the new path, `join_request` is required and single peer connection is used. With the existing path `/rtc`, single peer connection is still supported if `join_request` is used. Newer clients connecting to old server should follow 1. Try new path WebSocket 2. If that fails, try new path validate at `/rtc1/validate`. 3. If the above gets a 404 which will happen with older server, revert back to old path and signalling 1.0. Open to suggestions on path name. * test on both paths * change path from /rtc1 -> /rtc/v1 * test all rtc service path combinations
This commit is contained in:
@@ -135,17 +135,22 @@ type Options struct {
|
||||
SignalRequestInterceptor SignalRequestInterceptor
|
||||
SignalResponseInterceptor SignalResponseInterceptor
|
||||
UseJoinRequestQueryParam bool
|
||||
RTCServicePath string
|
||||
}
|
||||
|
||||
func NewWebSocketConn(host, token string, opts *Options) (*websocket.Conn, error) {
|
||||
u, err := url.Parse(host + "/rtc")
|
||||
rtcServicePath := "/rtc"
|
||||
if opts != nil && opts.RTCServicePath != "" {
|
||||
rtcServicePath = opts.RTCServicePath
|
||||
}
|
||||
parsedURL, err := url.Parse(host + rtcServicePath)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
requestHeader := make(http.Header)
|
||||
SetAuthorizationToken(requestHeader, token)
|
||||
|
||||
connectUrl := u.String()
|
||||
connectUrl := parsedURL.String()
|
||||
if opts != nil && opts.UseJoinRequestQueryParam {
|
||||
clientInfo := &livekit.ClientInfo{
|
||||
Os: runtime.GOOS,
|
||||
@@ -205,6 +210,7 @@ func NewWebSocketConn(host, token string, opts *Options) (*websocket.Conn, error
|
||||
connectUrl += encodeQueryParam("sdk", sdk)
|
||||
}
|
||||
|
||||
logger.Infow("connecting to", "url", parsedURL.String())
|
||||
conn, _, err := websocket.DefaultDialer.Dial(connectUrl, requestHeader)
|
||||
return conn, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user