@@ -35,7 +35,7 @@ type TURNServiceManager interface {
3535
3636type turnServiceManager struct {
3737 sync.Mutex
38- pleaders map [uint64 ]Sender // Mapping of clients waiting to receive TURN data.
38+ pleaders map [uint64 ]TurnDataReceiver // Mapping of clients waiting to receive TURN data.
3939
4040 uri string
4141 accessToken string
@@ -51,7 +51,7 @@ func NewTURNServiceManager(uri string, accessToken string, clientID string) TURN
5151 clientID : clientID ,
5252
5353 turnService : turnService ,
54- pleaders : make (map [uint64 ]Sender ),
54+ pleaders : make (map [uint64 ]TurnDataReceiver ),
5555 }
5656
5757 turnService .Open (accessToken , clientID , "" )
@@ -71,14 +71,16 @@ func NewTURNServiceManager(uri string, accessToken string, clientID string) TURN
7171 return mgr
7272}
7373
74- func (mgr * turnServiceManager ) CreateTurnData (sender Sender , session * Session ) * DataTurn {
74+ func (mgr * turnServiceManager ) CreateTurnData (sessionId string , receiver TurnDataReceiver ) * DataTurn {
7575 credentials := mgr .turnService .Credentials (false )
7676 turn , err := mgr .turnData (credentials )
7777 if err != nil || turn .Ttl == 0 {
7878 // When no data was return from service, refresh quickly.
79- mgr .Lock ()
80- mgr .pleaders [sender .Index ()] = sender
81- mgr .Unlock ()
79+ if receiver != nil {
80+ mgr .Lock ()
81+ mgr .pleaders [receiver .Index ()] = receiver
82+ mgr .Unlock ()
83+ }
8284
8385 // Have client come back early.
8486 turn .Ttl = 300
@@ -129,12 +131,9 @@ func (mgr *turnServiceManager) onCredentials(credentials *turnservicecli.CachedC
129131 mgr .Lock ()
130132 for _ , sender := range mgr .pleaders {
131133 if turn , err := mgr .turnData (credentials ); err == nil {
132- sender .Outgoing (& DataTurnUpdate {
133- Type : "TurnUpdate" ,
134- Turn : turn ,
135- })
134+ sender .TurnDataAvailable (turn )
136135 }
137136 }
138- mgr .pleaders = make (map [uint64 ]Sender ) // Clear.
137+ mgr .pleaders = make (map [uint64 ]TurnDataReceiver ) // Clear.
139138 mgr .Unlock ()
140139}
0 commit comments