Вызов SignalR не работает из-за ошибки на сервере - PullRequest
0 голосов
/ 08 апреля 2020

Я занимаюсь разработкой VR-игры на Unity, SignalR работает со всеми методами в моем хабе.

Проблема в том, что один метод работает не так, как ожидалось. Метод должен возвращать некоторую информацию об игре в конце игры, но я получаю эту ошибку:

Failed to invoke 'SessionReport' due to an error on the server.

Но если я попытаюсь вызвать метод в начале игры это работает как ожидалось.

Вот код в Unity, используемый для вызова моего метода 'SessionReport'.

public async static void SendReportInfo()
{
    HubConnection hubConnection = SignalRInitConnection.hubConnection;
    if (hubConnection != null && hubConnection.State == HubConnectionState.Connected)
    {
        Debug.Log("SignalR: Method SendReportInfo invoked");
        try
        {
            await hubConnection.InvokeAsync("SessionReport", MapStats.riskHistory, MapStats.scoreHistory, MapStats.envHistory, MapStats.difficultyLvlByEnv, MapStats.mapNameByEnv);
        }
        catch(Exception e)
        {
            Debug.Log("EXCEPTION SESSION REPORT:" + e.Message);
        }
    }
    else
    {
        Debug.Log("SignalR: hubCon is ko for SendReportInfo");
    }
}

Вот метод в моем SignalR Hub:

public void SessionReport(List<List<Risk>> riskHistory, List<int> scoreHistory, List<int> envHistory, List<int> difficultyLvlByEnv, List<string> mapNameByEnv)
{
    //Insert into DB
    Console.WriteLine("Nice session report there.");
}

Соединение с Концентратор все еще устанавливается, когда я вызываю метод 'SessionReport' в конце игры.

Почему метод 'SessionReport' работает в начале игры, но не в конце?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...