@@ -113,9 +113,8 @@ var (
113
113
// -------------------------------------------
114
114
115
115
const (
116
- signallingDataChannelName = "_signalling"
117
- reliableDataChannelName = "_reliable"
118
- lossyDataChannelName = "_lossy"
116
+ reliableDataChannelName = "_reliable"
117
+ lossyDataChannelName = "_lossy"
119
118
120
119
maxReconnectCount = 10
121
120
initialReconnectInterval = 300 * time .Millisecond
@@ -125,8 +124,6 @@ const (
125
124
type RTCEngine struct {
126
125
log protoLogger.Logger
127
126
128
- signallingVersion signalling.SignallingVersion
129
-
130
127
engineHandler engineHandler
131
128
cbGetLocalParticipantSID func () string
132
129
@@ -139,7 +136,6 @@ type RTCEngine struct {
139
136
signalTransport signalling.SignalTransport
140
137
141
138
dclock sync.RWMutex
142
- signallingDC * webrtc.DataChannel
143
139
reliableDC * webrtc.DataChannel
144
140
lossyDC * webrtc.DataChannel
145
141
reliableDCSub * webrtc.DataChannel
@@ -168,57 +164,32 @@ type RTCEngine struct {
168
164
}
169
165
170
166
func NewRTCEngine (
171
- signallingVersion signalling.SignallingVersion ,
172
167
engineHandler engineHandler ,
173
168
getLocalParticipantSID func () string ,
174
169
) * RTCEngine {
175
170
e := & RTCEngine {
176
171
log : logger ,
177
- signallingVersion : signallingVersion ,
178
172
engineHandler : engineHandler ,
179
173
cbGetLocalParticipantSID : getLocalParticipantSID ,
180
174
trackPublishedListeners : make (map [string ]chan * livekit.TrackPublishedResponse ),
181
175
joinTimeout : 15 * time .Second ,
182
176
reliableMsgSeq : 1 ,
183
177
}
184
- switch signallingVersion {
185
- case signalling .SignallingVersionV1 :
186
- e .signalling = signalling .NewSignalling (signalling.SignallingParams {
187
- Logger : e .log ,
188
- })
189
- e .signalHandler = signalling .NewSignalHandler (signalling.SignalHandlerParams {
190
- Logger : e .log ,
191
- Processor : e ,
192
- })
193
- e .signalTransport = signalling .NewSignalTransportWebSocket (signalling.SignalTransportWebSocketParams {
194
- Logger : e .log ,
195
- Version : Version ,
196
- Protocol : PROTOCOL ,
197
- Signalling : e .signalling ,
198
- SignalTransportHandler : e ,
199
- SignalHandler : e .signalHandler ,
200
- })
201
-
202
- case signalling .SignallingVersionV2 :
203
- e .signalling = signalling .NewSignallingv2 (signalling.Signallingv2Params {
204
- Logger : e .log ,
205
- })
206
- e .signalHandler = signalling .NewSignalHandlerv2 (signalling.SignalHandlerv2Params {
207
- Logger : e .log ,
208
- Processor : e ,
209
- Signalling : e .signalling ,
210
- })
211
- e .signalTransport = signalling .NewSignalTransportHybrid (signalling.SignalTransportHybridParams {
212
- Logger : e .log ,
213
- Version : Version ,
214
- Protocol : PROTOCOL ,
215
- Signalling : e .signalling ,
216
- SignalHandler : e .signalHandler ,
217
- })
218
-
219
- default :
220
- return nil
221
- }
178
+ e .signalling = signalling .NewSignalling (signalling.SignallingParams {
179
+ Logger : e .log ,
180
+ })
181
+ e .signalHandler = signalling .NewSignalHandler (signalling.SignalHandlerParams {
182
+ Logger : e .log ,
183
+ Processor : e ,
184
+ })
185
+ e .signalTransport = signalling .NewSignalTransportWebSocket (signalling.SignalTransportWebSocketParams {
186
+ Logger : e .log ,
187
+ Version : Version ,
188
+ Protocol : PROTOCOL ,
189
+ Signalling : e .signalling ,
190
+ SignalTransportHandler : e ,
191
+ SignalHandler : e .signalHandler ,
192
+ })
222
193
223
194
e .onClose = []func (){}
224
195
return e
@@ -248,35 +219,19 @@ func (e *RTCEngine) JoinContext(
248
219
e .token .Store (token )
249
220
e .connParams = connectParams
250
221
251
- var (
252
- publisherOffer webrtc.SessionDescription
253
- err error
254
- )
255
- if e .signallingVersion == signalling .SignallingVersionV2 {
256
- e .pclock .Lock ()
257
- e .createPublisherPCLocked (webrtc.Configuration {})
258
-
259
- publisherOffer , err = e .publisher .GetOffer ()
260
- if err != nil {
261
- e .pclock .Unlock ()
262
- return false , err
263
- }
264
- e .pclock .Unlock ()
265
- }
266
-
267
- err = e .signalTransport .Join (ctx , url , token , * connectParams , publisherOffer )
268
- if err != nil {
222
+ if err := e .signalTransport .Join (ctx , url , token , * connectParams ); err != nil {
269
223
if verr := e .validate (ctx , url , token , connectParams , "" ); verr != nil {
270
224
return false , verr
271
225
}
272
226
return false , err
273
227
}
274
228
275
- if err = e .waitUntilConnected (); err != nil {
229
+ if err : = e .waitUntilConnected (); err != nil {
276
230
return false , err
277
231
}
232
+
278
233
e .hasConnected .Store (true )
279
- return true , err
234
+ return true , nil
280
235
}
281
236
282
237
func (e * RTCEngine ) OnClose (onClose func ()) {
@@ -459,31 +414,6 @@ func (e *RTCEngine) createPublisherPCLocked(configuration webrtc.Configuration)
459
414
return err
460
415
}
461
416
e .reliableDC .OnMessage (e .handleDataPacket )
462
-
463
- // SIGNALLING-V2-TODO: may need a separate peer connection
464
- // SIGNALLING-V2-TODO: instantiating this should rely on signal transport strategy rather than signalling version
465
- if e .signallingVersion == signalling .SignallingVersionV2 {
466
- e .signallingDC , err = e .publisher .pc .CreateDataChannel (signallingDataChannelName , & webrtc.DataChannelInit {
467
- Ordered : & trueVal ,
468
- })
469
- if err != nil {
470
- e .dclock .Unlock ()
471
- return err
472
- }
473
- e .signallingDC .OnOpen (func () {
474
- signallingTransportDataChannel := signalling .NewSignalTransportDataChannel (signalling.SignalTransportDataChannelParams {
475
- Logger : e .log ,
476
- DataChannel : e .signallingDC ,
477
- SignalHandler : e .signalHandler ,
478
- })
479
- e .signalTransport .SetAsyncTransport (signallingTransportDataChannel )
480
- e .signalTransport .Start ()
481
- })
482
- e .signallingDC .OnClose (func () {
483
- // SIGNALLING-V2-TODO: should call SignalTransportHandler.OnClose
484
- })
485
- e .signallingDC .OnMessage (e .handleSignalling )
486
- }
487
417
e .dclock .Unlock ()
488
418
489
419
return nil
@@ -742,10 +672,6 @@ func (e *RTCEngine) readDataPacket(msg webrtc.DataChannelMessage) (*livekit.Data
742
672
return dataPacket , err
743
673
}
744
674
745
- func (e * RTCEngine ) handleSignalling (msg webrtc.DataChannelMessage ) {
746
- e .signalHandler .HandleEncodedMessage (msg .Data )
747
- }
748
-
749
675
func (e * RTCEngine ) handleDisconnect (fullReconnect bool ) {
750
676
// do not retry until fully connected
751
677
if e .closed .Load () || ! e .hasConnected .Load () {
@@ -1241,8 +1167,6 @@ func (e *RTCEngine) OnJoinResponse(res *livekit.JoinResponse) error {
1241
1167
isRestarting = true
1242
1168
}
1243
1169
1244
- e .signalTransport .SetParticipantResource (e .url , res .GetParticipant ().Sid , e .token .Load ())
1245
-
1246
1170
err := e .configure (res .IceServers , res .ClientConfiguration , proto .Bool (res .SubscriberPrimary ))
1247
1171
if err != nil {
1248
1172
e .log .Warnw ("could not configure" , err )
@@ -1380,7 +1304,6 @@ func (e *RTCEngine) OnTrackRemoteMuted(request *livekit.MuteTrackRequest) {
1380
1304
1381
1305
func (e * RTCEngine ) OnTokenRefresh (refreshToken string ) {
1382
1306
e .token .Store (refreshToken )
1383
- e .signalTransport .UpdateParticipantToken (refreshToken )
1384
1307
}
1385
1308
1386
1309
func (e * RTCEngine ) OnLeave (leave * livekit.LeaveRequest ) {
@@ -1410,50 +1333,6 @@ func (e *RTCEngine) OnSubscribedQualityUpdate(subscribedQualityUpdate *livekit.S
1410
1333
e .engineHandler .OnSubscribedQualityUpdate (subscribedQualityUpdate )
1411
1334
}
1412
1335
1413
- func (e * RTCEngine ) OnConnectResponse (res * livekit.ConnectResponse ) error {
1414
- isRestarting := false
1415
- if e .reconnecting .Load () && e .requiresFullReconnect .Load () {
1416
- isRestarting = true
1417
- }
1418
-
1419
- e .signalTransport .SetParticipantResource (e .url , res .GetParticipant ().Sid , e .token .Load ())
1420
-
1421
- err := e .configure (res .IceServers , res .ClientConfiguration , proto .Bool (true ))
1422
- if err != nil {
1423
- e .log .Warnw ("could not configure" , err )
1424
- return err
1425
- }
1426
-
1427
- e .engineHandler .OnRoomJoined (
1428
- res .Room ,
1429
- res .Participant ,
1430
- res .OtherParticipants ,
1431
- res .ServerInfo ,
1432
- res .SifTrailer ,
1433
- )
1434
-
1435
- e .signalTransport .Start ()
1436
-
1437
- // SIGNALLING-V2-TODO: should send publisher offer in connect request itself
1438
- // send offer
1439
- if res .FastPublish {
1440
- if publisher , ok := e .Publisher (); ok {
1441
- publisher .Negotiate ()
1442
- } else {
1443
- e .log .Warnw ("no publisher peer connection" , ErrNoPeerConnection )
1444
- }
1445
- }
1446
-
1447
- if res .SubscriberSdp != nil {
1448
- e .OnOffer (protosignalling .FromProtoSessionDescription (res .SubscriberSdp ))
1449
- }
1450
-
1451
- if isRestarting {
1452
- e .engineHandler .OnRestarted (res .Room , res .Participant , res .OtherParticipants )
1453
- }
1454
- return nil
1455
- }
1456
-
1457
1336
// ------------------------------------
1458
1337
1459
1338
func setConfiguration (pcTransport * PCTransport , configuration webrtc.Configuration ) {
0 commit comments