77 "strings"
88
99 "github.com/cloudwebrtc/flutter-webrtc-server/pkg/logger"
10- "github.com/cloudwebrtc/flutter-webrtc-server/pkg/transport"
1110 "github.com/cloudwebrtc/flutter-webrtc-server/pkg/turn"
11+ "github.com/cloudwebrtc/flutter-webrtc-server/pkg/websocket"
1212)
1313
1414func Marshal (m map [string ]interface {}) string {
@@ -38,8 +38,8 @@ type PeerInfo struct {
3838
3939// Peer .
4040type Peer struct {
41- info PeerInfo
42- transport * transport. WebSocketTransport
41+ info PeerInfo
42+ conn * websocket. WebSocketConn
4343}
4444
4545// Session info.
@@ -70,7 +70,7 @@ func (s Signaler) authHandler(username string, realm string, srcAddr net.Addr) (
7070 return nil , false
7171}
7272
73- func (s * Signaler ) NotifyPeersUpdate (transport * transport. WebSocketTransport , peers map [string ]Peer ) {
73+ func (s * Signaler ) NotifyPeersUpdate (conn * websocket. WebSocketConn , peers map [string ]Peer ) {
7474 infos := []PeerInfo {}
7575 for _ , peer := range peers {
7676 infos = append (infos , peer .info )
@@ -79,33 +79,33 @@ func (s *Signaler) NotifyPeersUpdate(transport *transport.WebSocketTransport, pe
7979 request ["type" ] = "peers"
8080 request ["data" ] = infos
8181 for _ , peer := range peers {
82- peer .transport .Send (Marshal (request ))
82+ peer .conn .Send (Marshal (request ))
8383 }
8484}
8585
8686func (s * Signaler ) HandleTurnServerCredentials (writer http.ResponseWriter , request * http.Request ) {
8787 // return turn credentials for client.
8888}
8989
90- func (s * Signaler ) HandleNewWebSocket (transport * transport. WebSocketTransport , request * http.Request ) {
90+ func (s * Signaler ) HandleNewWebSocket (conn * websocket. WebSocketConn , request * http.Request ) {
9191 logger .Infof ("On Open %v" , request )
92- transport .On ("message" , func (message []byte ) {
92+ conn .On ("message" , func (message []byte ) {
9393 request := Unmarshal (string (message ))
9494 data := request ["data" ].(map [string ]interface {})
9595 switch request ["type" ] {
9696 case "new" :
9797 {
9898
9999 peer := Peer {
100- transport : transport ,
100+ conn : conn ,
101101 info : PeerInfo {
102102 ID : data ["id" ].(string ),
103103 Name : data ["name" ].(string ),
104104 UserAgent : data ["user_agent" ].(string ),
105105 },
106106 }
107107 s .peers [peer .info .ID ] = peer
108- s .NotifyPeersUpdate (transport , s .peers )
108+ s .NotifyPeersUpdate (conn , s .peers )
109109 }
110110 break
111111 case "leave" :
@@ -128,10 +128,10 @@ func (s *Signaler) HandleNewWebSocket(transport *transport.WebSocketTransport, r
128128 "reason" : "Peer [" + To + "] not found " ,
129129 },
130130 }
131- transport .Send (Marshal (msg ))
131+ conn .Send (Marshal (msg ))
132132 return
133133 } else {
134- peer .transport .Send (Marshal (request ))
134+ peer .conn .Send (Marshal (request ))
135135 }
136136 }
137137 break
@@ -147,7 +147,7 @@ func (s *Signaler) HandleNewWebSocket(transport *transport.WebSocketTransport, r
147147 "reason" : "Invalid session [" + sessionID + "]" ,
148148 },
149149 }
150- transport .Send (Marshal (msg ))
150+ conn .Send (Marshal (msg ))
151151 return
152152 }
153153 if peer , ok := s .peers [ids [0 ]]; ! ok {
@@ -158,7 +158,7 @@ func (s *Signaler) HandleNewWebSocket(transport *transport.WebSocketTransport, r
158158 "reason" : "Peer [" + ids [0 ] + "] not found." ,
159159 },
160160 }
161- transport .Send (Marshal (msg ))
161+ conn .Send (Marshal (msg ))
162162 return
163163 } else {
164164 bye := map [string ]interface {}{
@@ -168,7 +168,7 @@ func (s *Signaler) HandleNewWebSocket(transport *transport.WebSocketTransport, r
168168 "session_id" : sessionID ,
169169 },
170170 }
171- peer .transport .Send (Marshal (bye ))
171+ peer .conn .Send (Marshal (bye ))
172172 }
173173
174174 if peer , ok := s .peers [ids [1 ]]; ! ok {
@@ -179,7 +179,7 @@ func (s *Signaler) HandleNewWebSocket(transport *transport.WebSocketTransport, r
179179 "reason" : "Peer [" + ids [0 ] + "] not found " ,
180180 },
181181 }
182- transport .Send (Marshal (msg ))
182+ conn .Send (Marshal (msg ))
183183 return
184184 } else {
185185 bye := map [string ]interface {}{
@@ -189,7 +189,7 @@ func (s *Signaler) HandleNewWebSocket(transport *transport.WebSocketTransport, r
189189 "session_id" : sessionID ,
190190 },
191191 }
192- peer .transport .Send (Marshal (bye ))
192+ peer .conn .Send (Marshal (bye ))
193193 }
194194 }
195195 break
@@ -198,7 +198,7 @@ func (s *Signaler) HandleNewWebSocket(transport *transport.WebSocketTransport, r
198198 "type" : "keepalive" ,
199199 "data" : map [string ]interface {}{},
200200 }
201- transport .Send (Marshal (keepalive ))
201+ conn .Send (Marshal (keepalive ))
202202 break
203203 default :
204204 {
@@ -208,15 +208,15 @@ func (s *Signaler) HandleNewWebSocket(transport *transport.WebSocketTransport, r
208208 }
209209 })
210210
211- transport .On ("close" , func (code int , text string ) {
212- logger .Infof ("On Close %v" , transport )
211+ conn .On ("close" , func (code int , text string ) {
212+ logger .Infof ("On Close %v" , conn )
213213 for _ , peer := range s .peers {
214- if peer .transport == transport {
214+ if peer .conn == conn {
215215 logger .Infof ("Remove peer %s" , peer .info .ID )
216216 delete (s .peers , peer .info .ID )
217217 break
218218 }
219219 }
220- s .NotifyPeersUpdate (transport , s .peers )
220+ s .NotifyPeersUpdate (conn , s .peers )
221221 })
222222}
0 commit comments