func RegisterServerHandler(server *protocols.Server, handler HeartbeatServerHandler) error { if err := server.Protocol().CheckIncludesFragment(Protocol.Name()); err != nil { return err } return server.RegisterHandlers(protocols.ServerHandlerMap{ codeHeartbeat: func(packet *protocols.Packet) *protocols.Packet { val := packet.Val if beat, ok := val.(*HeartbeatPacket); ok { handler.HeartbeatReceived(beat) } else { server.LogError(fmt.Errorf("Heartbeat received with wrong payload: (%T) %v", val, val)) } return nil }, }) }