не http-сервер - PullRequest
       11

не http-сервер

3 голосов
/ 15 июня 2011

Я пишу сервер, который должен обслуживать множество клиентов.Трафик НЕ http (а какой-то проприетарный протокол поверх TCP).Я не очень знаком с коммерческими веб-серверами, такими как IIS и Apache.Может кто-нибудь сказать мне, возможно ли написать какое-то «расширение» для запуска поверх одной из этих платформ, чтобы мне не приходилось писать логику для сокетов?Или, может быть, есть другой способ (не IIS или Apache) сделать это, который лучше?

Мой сервер обычно будет вести себя как веб-служба (получает запрос, запрашивает базу данных, отправляет ответ), однако есть одинсценарий, в котором он остается подключенным к клиентскому сокету и отправляет обновления через заданный интервал времени на этом сокете.

Кажется разумным, чтобы это был способ сделать это так, что мне нужно было только написатьмоя логика без общей логики сервера.Есть идеи?

Спасибо!

1 Ответ

3 голосов
/ 15 июня 2011

Хороший вопрос, а также хороший внешний вид для использования существующего веб-сервера - вы получаете масштабируемость и стабильность, эффективно и бесплатно. Я никогда не делал этого сам, но это вполне возможно в IIS (для этого я рекомендую v7 +, так будет проще).

Вы можете настроить новый веб-сайт с помощью инструмента администрирования и назначить ему порт для прослушивания - этот бит довольно прост. Вы должны установить для Binding Type значение net.tcp (это раскрывающийся список в диалоговом окне для добавления нового веб-сайта, вы не можете пропустить его).

Затем вы можете использовать либо модули, либо обработчики для реализации остальных ваших пользовательских функций. Эта статья Разработка модулей и обработчиков IIS 7.0 с помощью .NET Framework является хорошим введением в эту тему. Большая часть документации о написании пользовательских обработчиков и модулей сфокусирована на протоколе HTTP, но есть некоторые фрагменты для TCP и / или net.tcp (потому что IIS и Apache являются web серверами, и web является синонимом http ). Еще один полезный ресурс: Настройка обработки запросов для веб-сервера (IIS 7)

В качестве альтернативы вы можете рассмотреть возможность изменения вашего подхода и сделать это как net.tcp WCF-сервис , благодаря чему вы получаете преимущества использования IIS, гибкость выбор протокола (может быть статически настроен, не требует компиляции), и вам не нужно писать обработчики или модули.

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