Клиент не может ничего отправить серверу

Рейтинг: 0Ответов: 1Опубликовано: 10.02.2023

использую mirror для мультиплеера. Проблема в том, что серверу ничего не приходит.

       public override void OnStartServer()
        {
            NetworkServer.RegisterHandler<AuthRequestMessage>(ServerCheckPassword, false);
        }

        public override void OnStopServer()
        {
            NetworkServer.UnregisterHandler<AuthRequestMessage>();
        }


        public override void OnStartClient()
        {
            NetworkClient.RegisterHandler<AuthResponseMessage>(ClientResponse, false);
        }

        public override void OnStopClient()
        {
            NetworkClient.UnregisterHandler<AuthResponseMessage>();
        }

        public void ServerCheckPassword(NetworkConnectionToClient conn, AuthRequestMessage msg)
        {
            print(0);
            if (!connectionsPendingDisconnect.Contains(conn))
            {
                print(1);
                //проверка пароля
                if (пароль подходит)
                {
                    AuthResponseMessage authResponseMessage = new AuthResponseMessage
                    {
                        code = 200,
                        message = "Success"
                    };

                    conn.isAuthenticated = true;
                    ServerAccept(conn);
                    conn.Send(authResponseMessage);
                 }
                 else
                 {
                     connectionsPendingDisconnect.Add(conn);
                     AuthResponseMessage authResponseMessage = new AuthResponseMessage
                     {
                         code = 100,
                         message = "Неверный пароль"
                     };

                     conn.Send(authResponseMessage);
                     conn.isAuthenticated = false;                
                }
            }
        }

        public override void OnClientAuthenticate()
        {
            AuthRequestMessage authRequestMessage = new AuthRequestMessage
            {
                Username = username,
                Password = password
            };


            print($"login : {username}");
            print($"password : {password}");

            NetworkClient.ready = true;
            NetworkClient.connection.Send(authRequestMessage);
        }

        public void ClientResponse(AuthResponseMessage msg)
        {
            print("Code");

            if (msg.code == 200)
            {
                print("Code 200");

                ClientAccept();
                authenticated = true;
            }
            else
            {
                print("Code 100");

                ClientReject();
                authenticated = false;
            }
        }

Ответы

▲ 0Принят

Был закрыт порт с протоколом udp