Fix panic when load (#35)

* Change join to start

* Unorder data channel

* Add guard
This commit is contained in:
giongto35 2019-05-23 23:51:50 +08:00 committed by GitHub
parent facd0fdc01
commit d52df47366
4 changed files with 32 additions and 15 deletions

View file

@ -93,11 +93,11 @@ func (c *Client) Send(request WSPacket, callback func(response WSPacket)) {
// Receive receive and response back
func (c *Client) Receive(id string, f func(response WSPacket) (request WSPacket)) {
c.recvCallback[id] = func(response WSPacket) {
//defer func() {
//if err := recover(); err != nil {
//log.Println("Recovered from err", err)
//}
//}()
defer func() {
if err := recover(); err != nil {
log.Println("Recovered from err ", err)
}
}()
req := f(response)
// Add Meta data

View file

@ -36,7 +36,11 @@ func (s *Session) RouteBrowser() {
// TODO: Async
log.Println("Overlord: serverID: ", s.ServerID, resp.SessionID)
resp.SessionID = s.ID
sdp := s.handler.workerClients[s.ServerID].SyncSend(
wc, ok := s.handler.workerClients[s.ServerID]
if !ok {
return cws.EmptyPacket
}
sdp := wc.SyncSend(
resp,
)
@ -52,7 +56,11 @@ func (s *Session) RouteBrowser() {
// TODO: Async
resp.SessionID = s.ID
resp = s.handler.workerClients[s.ServerID].SyncSend(
wc, ok := s.handler.workerClients[s.ServerID]
if !ok {
return cws.EmptyPacket
}
resp = wc.SyncSend(
resp,
)
@ -64,7 +72,11 @@ func (s *Session) RouteBrowser() {
log.Println("Overlord: Relay start request from a browser to worker")
// TODO: Async
resp.SessionID = s.ID
workerResp := s.handler.workerClients[s.ServerID].SyncSend(
wc, ok := s.handler.workerClients[s.ServerID]
if !ok {
return cws.EmptyPacket
}
workerResp := wc.SyncSend(
resp,
)
// Response from worker contains initialized roomID. Set roomID to the session
@ -80,7 +92,11 @@ func (s *Session) RouteBrowser() {
// TODO: Async
resp.SessionID = s.ID
resp.RoomID = s.RoomID
resp = s.handler.workerClients[s.ServerID].SyncSend(
wc, ok := s.handler.workerClients[s.ServerID]
if !ok {
return cws.EmptyPacket
}
resp = wc.SyncSend(
resp,
)
@ -93,7 +109,11 @@ func (s *Session) RouteBrowser() {
// TODO: Async
resp.SessionID = s.ID
resp.RoomID = s.RoomID
resp = s.handler.workerClients[s.ServerID].SyncSend(
wc, ok := s.handler.workerClients[s.ServerID]
if !ok {
return cws.EmptyPacket
}
resp = wc.SyncSend(
resp,
)

View file

@ -136,9 +136,6 @@ func (o *Server) WS(w http.ResponseWriter, r *http.Request) {
},
nil,
)
//log.Println("Socket terminated, detach connection")
//h.detachPeerConn(wssession.peerconnection)
}()
wssession.BrowserClient.Listen()

View file

@ -145,8 +145,8 @@ func (w *WebRTC) StartClient(remoteSession string, iceCandidates [][]byte, width
// input channel
inputTrack, err := w.connection.CreateDataChannel("a", &webrtc.DataChannelInit{
Ordered: &dtrue,
Negotiated: &dtrue,
Ordered: &dfalse,
Negotiated: &dfalse,
ID: &d0,
})