mirror of
https://github.com/giongto35/cloud-game.git
synced 2026-07-23 01:57:22 +00:00
Fix panic when load (#35)
* Change join to start * Unorder data channel * Add guard
This commit is contained in:
parent
facd0fdc01
commit
d52df47366
4 changed files with 32 additions and 15 deletions
10
cws/cws.go
10
cws/cws.go
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
})
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue