SignalR не обрабатывает призыв в центре.C#

Место общения программистов C#
Ответить
Anonymous
 SignalR не обрабатывает призыв в центре.

Сообщение Anonymous »

У меня есть концентратор SignalR с несколькими конечными точками, все конечные точки работают, кроме одной.
Hub получает сообщение, но не может его обрабатывать. < /p>
//I set additional parameters to Logging configuration in application.json
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning",
"Microsoft.AspNetCore.SignalR": "Debug",//this
"Microsoft.AspNetCore.Http.Connections": "Debug"//and this one
}
}
< /code>
Журналы, когда клиент вызывает Endpoint ConsumeCandidate:
dbug: Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher[1] Received hub invocation: InvocationMessage { InvocationId: "2", Target: "ConsumeCandidate", Arguments: [ lolkek, 581dc267-d2ff-403f-924c-cd6dba40535b ], StreamIds: [ ] }.
Сервер не имеет проблем с получением сообщения, но Hub не вызывает необходимого метода.
Hub: < Br />public class LobbyHub(ILobbyService lobbyService, ILogger logger, IGameService gameService,
IElectionManager electionManager) : Hub
{
// this method should be invoked
public void ConsumeCandidate(string lobbyName, string userClientId)
{
logger.LogInformation($"Chancellor candidate received from: {userClientId}");
}

//For instance hub is able to invoke this one
public async Task StartGame(string lobbyName, string userClientId)
{
await gameService.StartRound(lobbyName, userClientId);
}
}

app.MapHub("/lobbyhub");
< /code>
Как вы можете видеть, это не может быть никаких проблем с именованием, также обратите внимание, что все другие методы этого центра работают хорошо, соединение не теряется, тот же клиент может вызвать другие конечные точки после Consumperedidate , и в этом нет никаких проблем. Не существует журналов из метода ConsumperCandidate , когда получение сообщения от клиента. Средний концентратор отображается, а Signalr зарегистрирован в DI).
Я попытался добавить [HubMethodName ("ConsumperCandidate")] < /code> к методу, но ничего не произошло. Я попытался отлаживать метод потребительского положения, но из -за того, что он не может быть назван, отладка не помогла. Все, что я могу сказать, что сервер получает сообщение, но не обрабатывает его.
builder.Services.AddSignalR().AddHubOptions(options =>
{
options.EnableDetailedErrors = true;
});


Подробнее здесь: https://stackoverflow.com/questions/794 ... invocation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»