Плюсы / минусы написания собственного веб-сервера - PullRequest
1 голос
/ 11 февраля 2011

Я создал веб-приложение ASP.NET Webforms, которое в основном взаимодействует с кодом с помощью метода jQuery.ajax.

  • Данные на странице должны обновляться каждые 1 секунду и составляют около 1 КБ на запрос.
  • Веб-приложение будет размещено в интрасети.Таким образом, он имеет разумную скорость для такой частоты обновления.
  • Я использую ASP.NET Development Server.
  • Выполнение кода на стороне сервера занимает около 20 миллисекунд (идеально для меня), но (с использованием firebug) каждый запрос от клиента занимает около 1,5 до2 секунды, чтобы перейти назад (что связано с отправкой XMLHttpRequest на мой веб-сервер и получением данных обратного вызова. И это не идеально для меня), и я не могу найти обходной путь, чтобы ускорить его.

Теперь от коллеги мне посоветовали написать свой пользовательский веб-сервер для обработки страницы и взаимодействия с этим веб-сервером с использованием javascript на странице;Таким образом, я могу разместить свою бизнес-логику на созданном веб-сервере и эффективно ускорить процесс.(по сравнению с использованием IIS или ASP.NET Development Server).

По сути, я понятия не имею об этом подходе.
Я был бы рад, если бы кто-нибудь рассказал мне о плюсах и минусах написания моего собственного веб-сервера и о влиянии, которое он оказывает на передачу данных.Оцените в моем пользовательском сценарии.

Ответы [ 3 ]

2 голосов
/ 11 февраля 2011

Не делай этого.

IIS работает быстро.Нет оснований полагать, что вы сможете написать сервер самостоятельно, это значительно быстрее.Пользовательский веб-сервер добавит ровно ноль дополнительных значений, но для его реализации потребуется некоторое время.И вам придется беспокоиться о безопасности, обслуживании и т. Д.

Если вам не нужны служебные данные страницы ASP .NET, хорошими вариантами являются службы WCF, размещенные в IIS, или просто простой IHttpHandler.Я совершенно уверен, что вы можете преодолеть проблемы с производительностью без специального веб-сервера.

Попробуйте оценить, что отнимает время.Например, сначала измерьте время выполнения на стороне сервера.Затем измерьте время передачи (например, используя Fiddler ).Какой из них занимает время?Если вы много работаете с клиентом (например, обрабатываете полученные данные), это также может быть причиной задержки.

1 голос
/ 11 февраля 2011

PRO: Вы можете разделить веб-сервер до критических частей, которые вам нужны, и не иметь лишних затрат на все, что не нужно / не нужно вашему приложению.

CONS:

  • Вам придется заново изобретать колесо для множества вещей, которые вы получаете бесплатно с помощью существующего веб-сервера. Например, аутентификация, шифрование, анализ запросов, формулировка ответов, управление портами и т. Д.

  • Все это время будет потрачено на вещи, которые касаются ваших реальных целей развития. Если вы не планируете повторно использовать этот веб-сервер в большом количестве проектов, это пустая трата времени на разработку.

  • Вы построили веб-сервер раньше, верно? Вы уверены, что справляетесь лучше, чем основные, которые уже существуют и были созданы целыми командами разработчиков? Вы уверены, что это будет быстрее? Будет ли это меньше ошибок, чем то, что было проверено буквально миллионами веб-пользователей, таких как IIS или Apache?

0 голосов
/ 11 февраля 2011

Biggest CON: вы должны заново изобрести все ошибки и дыры в безопасности, которые уже прошла существующая платформа веб-сервера. Сколько времени вы хотите потратить на решение проблем, связанных с безопасностью кодирования?

...