Клиент не может ничего отправить серверу
использую 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;
}
}
Источник: Stack Overflow на русском