func printOutput(conn *net.TCPConn) { for { msg, err := protocol.ReadMsg(conn) // Receiving EOF means that the connection has been closed if err == io.EOF { // Close conn and exit conn.Close() fmt.Println("Connection Closed. Bye bye.") os.Exit(0) } if err != nil { log.Fatal(err) } fmt.Println(msg) } }
func (server Server) handleRequest(conn net.Conn) { for { msg, err := protocol.ReadMsg(conn) if err != nil { if err == io.EOF { // Close the connection when you're done with it. server.removeConn(conn) conn.Close() return } log.Println(err) return } log.Printf("Message Received: %#v\n", msg) switch msg.(type) { case protocol.PingMsg: case protocol.OkMsg: case protocol.ErrorMsg: case protocol.GameMoveMsg: case protocol.ChatMessageMsg: case protocol.ConnectMsg: case protocol.RequestOpenGamesListMsg: case protocol.CreateGameMsg: case protocol.JoinGameMsg: case protocol.AcceptGameMsg: case protocol.RejectGameMsg: case protocol.GameSetPieceMsg: case protocol.RequestGameStateMsg: case protocol.AbandonGameMsg: case protocol.OpenGamesListMsg: case protocol.GamePreGameStatusMsg: case protocol.GameStateMsg: case protocol.GameWonMsg: case protocol.GameLostMsg: default: } //broadcast(conn, msg) } }