Andrei SunnyPh, А смысл в такой избаточности?
Статус код приходит в http протоколе и вам все равно придется его обрабатывать, так как если придет ошибка сетевого уровня (для примера 503), то без этого никак.
IsSuccess - определяется из статус кода.
List ErrorMessages - ошибка всегда одна, но может содержать уточняющие данные. Лучше string "Error" и list ErrorDetails
При этом Result упакован в обьект. Это почти тоже самое, что изначально спрашивали, паковать ли в массив.
А вот из полезного в случае ошибки у вас нет "Времени запроса", Url самого запроса.
"но просто переделать методы на async Task и понаставить await-ов недостаточно же, необходимо прокинуть везде CancellationToken" - достаточно.
Как у вас в примере это самое правильное
У вас по условию 2 ядра. Так что при запросах от 10 тыс клиентов, многим придется ждать.
Наличие пула потоков только уменьшает затраты на создание/инициализацию новых потоков, что явно является не самой долгосрочной операцией.
Ничего нового не изобретено. Есть socket с протаколами UDP и TCP, уже поверх этого из указанного вами (HTTP и web sockets).
А socket.io, Lingred.Network или SignalR просто бибилиотеки, что используют указанное выше
OwDafuq, В хендлере много чего может быть.
Например другой пользователь уже удалил обьект, который вы только, что в валидаторе проверили и он был.
Данные то правильные, но ресурса нет.
у вас "a" это набор обьектов. И новый массив обектами заполняете.
Тут a[0].x =500; меняете значение свойства обьекта,
а c[0]=100; перезаписываете ячейку массива значением 100, вместо обьекта что там находился
vladzen13, Вот появиться у вас механизм "единого входа", т.е. токен выдает сервис Аутентификации, такой как OpenId, а сам токен будет использоваться в других сервисах. И откуда сервисы возьму для проверки кеш пароля?
Да и смысла нет скидывать все активные сессии при обычной плановой смене пароля.
Попробуйте задать вместо этого IP адрес