mirror of
https://github.com/giongto35/cloud-game.git
synced 2026-07-19 01:24:26 +00:00
Close room signal overlord (#140)
This commit is contained in:
parent
3bd63fdc2c
commit
e8fbd28b2f
2 changed files with 20 additions and 2 deletions
|
|
@ -17,16 +17,29 @@ type WorkerClient struct {
|
|||
|
||||
// RouteWorker are all routes server received from worker
|
||||
func (o *Server) RouteWorker(workerClient *WorkerClient) {
|
||||
// registerRoom event from a server, when server created a new room.
|
||||
// registerRoom event from a worker, when worker created a new room.
|
||||
// RoomID is global so it is managed by overlord.
|
||||
workerClient.Receive("registerRoom", func(resp cws.WSPacket) cws.WSPacket {
|
||||
log.Println("Overlord: Received registerRoom ", resp.Data, workerClient.ServerID)
|
||||
log.Printf("Overlord: Received registerRoom room %s from worker %s", resp.Data, workerClient.ServerID)
|
||||
o.roomToServer[resp.Data] = workerClient.ServerID
|
||||
log.Printf("Overlord: Current room list is: %+v", o.roomToServer)
|
||||
|
||||
return cws.WSPacket{
|
||||
ID: "registerRoom",
|
||||
}
|
||||
})
|
||||
|
||||
// closeRoom event from a worker, when worker close a room
|
||||
workerClient.Receive("closeRoom", func(resp cws.WSPacket) cws.WSPacket {
|
||||
log.Printf("Overlord: Received closeRoom room %s from worker %s", resp.Data, workerClient.ServerID)
|
||||
delete(o.roomToServer, resp.Data)
|
||||
log.Printf("Overlord: Current room list is: %+v", o.roomToServer)
|
||||
|
||||
return cws.WSPacket{
|
||||
ID: "closeRoom",
|
||||
}
|
||||
})
|
||||
|
||||
// getRoom returns the server ID based on requested roomID.
|
||||
workerClient.Receive("getRoom", func(resp cws.WSPacket) cws.WSPacket {
|
||||
log.Println("Overlord: Received a getroom request")
|
||||
|
|
|
|||
|
|
@ -229,6 +229,11 @@ func (h *Handler) startGameHandler(gameName, roomID string, playerIndex int, pee
|
|||
go func() {
|
||||
<-room.Done
|
||||
h.detachRoom(room.ID)
|
||||
// send signal to overlord that the room is closed, overlord will remove that room
|
||||
h.oClient.Send(cws.WSPacket{
|
||||
ID: "closeRoom",
|
||||
Data: roomID,
|
||||
}, nil)
|
||||
}()
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue