@@ -29,13 +29,6 @@ type TurnCredentials struct {
2929	Uris      []string  `json:"uris"` 
3030}
3131
32- // PeerInfo . 
33- type  PeerInfo  struct  {
34- 	ID         string  `json:"id"` 
35- 	Name       string  `json:"name"` 
36- 	UserAgent  string  `json:"user_agent"` 
37- }
38- 
3932// Peer . 
4033type  Peer  struct  {
4134	info  PeerInfo 
@@ -66,9 +59,9 @@ type Request struct {
6659	Data  interface {} `json:"data"` 
6760}
6861
69- type  Login  struct  {
70- 	Name       string  `json:"name"` 
62+ type  PeerInfo  struct  {
7163	ID         string  `json:"id"` 
64+ 	Name       string  `json:"name"` 
7265	UserAgent  string  `json:"user_agent"` 
7366}
7467
@@ -219,28 +212,19 @@ func (s *Signaler) HandleNewWebSocket(conn *websocket.WebSocketConn, request *ht
219212
220213		switch  request .Type  {
221214		case  New :
222- 			{
223- 				var  login  Login 
224- 				err  :=  json .Unmarshal (body , & login )
225- 				if  err  !=  nil  {
226- 					logger .Errorf ("Unmarshal login error %v" , err )
227- 					return 
228- 				}
229- 
230- 				peer  :=  Peer {
231- 					conn : conn ,
232- 					info : PeerInfo {
233- 						ID :        login .ID ,
234- 						Name :      login .Name ,
235- 						UserAgent : login .UserAgent ,
236- 					},
237- 				}
238- 				s .peers [peer .info .ID ] =  peer 
239- 				s .NotifyPeersUpdate (conn , s .peers )
215+ 			var  info  PeerInfo 
216+ 			err  :=  json .Unmarshal (body , & info )
217+ 			if  err  !=  nil  {
218+ 				logger .Errorf ("Unmarshal login error %v" , err )
219+ 				return 
220+ 			}
221+ 			s .peers [info .ID ] =  Peer {
222+ 				conn : conn ,
223+ 				info : info ,
240224			}
225+ 			s .NotifyPeersUpdate (conn , s .peers )
241226			break 
242227		case  Leave :
243- 			break 
244228		case  Offer :
245229			fallthrough 
246230		case  Answer :
@@ -270,81 +254,59 @@ func (s *Signaler) HandleNewWebSocket(conn *websocket.WebSocketConn, request *ht
270254			}
271255			break 
272256		case  Bye :
273- 			{
274- 				var  bye  Byebye 
275- 				err  :=  json .Unmarshal (body , & bye )
276- 				if  err  !=  nil  {
277- 					logger .Errorf ("Unmarshal bye got error %v" , err )
278- 					return 
279- 				}
257+ 			var  bye  Byebye 
258+ 			err  :=  json .Unmarshal (body , & bye )
259+ 			if  err  !=  nil  {
260+ 				logger .Errorf ("Unmarshal bye got error %v" , err )
261+ 				return 
262+ 			}
280263
281- 				ids  :=  strings .Split (bye .SessionID , "-" )
282- 				if  len (ids ) !=  2  {
283- 					msg  :=  Request {
284- 						Type : "error" ,
285- 						Data : Error {
286- 							Request : string (request .Type ),
287- 							Reason :  "Invalid session ["  +  bye .SessionID  +  "]" ,
288- 						},
289- 					}
290- 					s .Send (conn , msg )
291- 					return 
292- 				}
293- 				if  peer , ok  :=  s .peers [ids [0 ]]; ! ok  {
294- 					msg  :=  Request {
295- 						Type : "error" ,
296- 						Data : Error {
297- 							Request : string (request .Type ),
298- 							Reason :  "Peer ["  +  ids [0 ] +  "] not found." ,
299- 						},
300- 					}
301- 					s .Send (conn , msg )
302- 					return 
303- 				} else  {
304- 					bye  :=  Request {
305- 						Type : "bye" ,
306- 						Data : map [string ]interface {}{
307- 							"to" :         ids [0 ],
308- 							"session_id" : bye .SessionID ,
309- 						},
310- 					}
311- 					s .Send (peer .conn , bye )
264+ 			ids  :=  strings .Split (bye .SessionID , "-" )
265+ 			if  len (ids ) !=  2  {
266+ 				msg  :=  Request {
267+ 					Type : "error" ,
268+ 					Data : Error {
269+ 						Request : string (request .Type ),
270+ 						Reason :  "Invalid session ["  +  bye .SessionID  +  "]" ,
271+ 					},
312272				}
273+ 				s .Send (conn , msg )
274+ 				return 
275+ 			}
313276
314- 				if  peer , ok  :=  s .peers [ids [1 ]]; ! ok  {
277+ 			sendBye  :=  func (id  string ) {
278+ 				peer , ok  :=  s .peers [id ]
279+ 
280+ 				if  ! ok  {
315281					msg  :=  Request {
316282						Type : "error" ,
317283						Data : Error {
318284							Request : string (request .Type ),
319- 							Reason :  "Peer ["  +  ids [ 0 ]  +  "] not found  " ,
285+ 							Reason :  "Peer ["  +  id  +  "] not found. " ,
320286						},
321287					}
322288					s .Send (conn , msg )
323289					return 
324- 				} else  {
325- 					bye  :=  Request {
326- 						Type : "bye" ,
327- 						Data : map [string ]interface {}{
328- 							"to" :         ids [1 ],
329- 							"session_id" : bye .SessionID ,
330- 						},
331- 					}
332- 					s .Send (peer .conn , bye )
333290				}
291+ 				bye  :=  Request {
292+ 					Type : "bye" ,
293+ 					Data : map [string ]interface {}{
294+ 						"to" :         id ,
295+ 						"session_id" : bye .SessionID ,
296+ 					},
297+ 				}
298+ 				s .Send (peer .conn , bye )
334299			}
335- 			break 
300+ 
301+ 			// send to aleg 
302+ 			sendBye (ids [0 ])
303+ 			//send to bleg 
304+ 			sendBye (ids [1 ])
305+ 
336306		case  Keepalive :
337- 			keepalive  :=  Request {
338- 				Type : request .Type ,
339- 				Data : make (map [string ]interface {}),
340- 			}
341- 			s .Send (conn , keepalive )
342- 			break 
307+ 			s .Send (conn , request )
343308		default :
344- 			{
345- 				logger .Warnf ("Unkown request %v" , request )
346- 			}
347- 			break 
309+ 			logger .Warnf ("Unkown request %v" , request )
348310		}
349311	})
350312
0 commit comments