Я хочу создать сервер, который сможет обрабатывать протоколы TCP, HTTP и Websockets (а не одновременно) и иметь возможность работать одинаково независимо от того, какой протокол он будет использовать во время выполнения.Архитектурный дизайн агностического сервера протокола
В принципе, я не отношусь к каждому типу запроса по-разному, но каким-то образом создаю объект общего запроса и общий объект ответа.
Сообщения, полученные через TCP и Websockets, будут иметь структуру HTTP-запроса.
Все запросы/сообщения будут REST-like.
Какое архитектурное проектирование я должен использовать, чтобы не дублировать маршрутизацию/обработку для каждого протокола?
Это хорошо. Каков твой вопрос? В любом случае вы не должны привязывать свою бизнес-логику к определенному сетевому протоколу. Взгляните на то, как Microsoft WCF делает это: используя «привязки». Связывание переводит «сообщение» в формат, специфичный для протокола. – CodeCaster
Что касается вашего редактирования, можете ли вы подробнее рассказать о «маршрутизации/обработке»? – CodeCaster
@CodeCaster, так как все запросы/сообщения будут «выглядеть» одинаково, я хочу использовать один и тот же механизм маршрутизации, выполнить некоторую обработку, а затем дать ответ. – Donovan