2013-05-13 1 views
0

В основном, существующее приложение состоит из приложения сервера C#, работающего как служба Windows, и использует сокеты для связи вместе с клиентскими приложениями, которые подключаются к этому серверу.Предложения для написания веб-клиента для существующего клиент-серверного приложения

Сервер по существу управляет несколькими системами камер: пользователь может входить в систему и перемещать камеру, снимать видео и делать фотографии.

Основная проблема заключается в латентности и пользовательской памяти без чрезмерных затрат.

В основном эта модель выглядит так:

< камеры ---> Сервер < ---> Клиенты

Я хочу:

< камеры ---> Сервер < --- > Клиенты, в том числе веб-клиент

Теперь, для веб-стороны, я предполагаю, что два основных подхода:

a) Веб-клиент действует непосредственно как клиент сокета, напрямую подключаемый к серверу. Это уменьшит время ожидания. Возможно ли использование HTML5/JavaScript, не прибегая к чему-то вроде вспышки?

b) Веб-клиент взаимодействует с веб-сервером, используя что-то вроде веб-сокетов или опроса с помощью AJAX. Веб-сервер взаимодействует с сервером приложений. Теперь возникают осложнения при сохранении связи сервер/сервер и обработке учетных данных пользователя и тому подобное. Кроме того, введена некоторая латентность. Наверху клиент будет работать за брандмауэрами/и т. Д. пока клиент может получить доступ к веб-сайту.

В основном, я делал много неубедительных исследований, поэтому на данный момент я ищу опытный вход ... Где бы вы порекомендовали начать? Какие технологии я мог бы разумно исследовать? Что позволит наиболее быстрое развитие/обучение с разумной производительностью?

+0

Это не совсем подходящий SO вопроса. Вы должны быть более конкретными, чем давать список требований и задавать в основном «Хорошо, что мне теперь делать?» – millimoose

ответ

0

Я рекомендую вам взять другой маршрут:

< камеры ----> (Existing, C#) Сервер < ----> (New WebApp в) вебсервер < ----> Клиент

и выполните перевод в серверном приложении.

  • Это оказывает огромное влияние на защитную поверхность вашего приложения, поскольку сам сервер камеры больше не подвергается (ненадежным) веб-клиентам, а только веб-приложениям (доверенным).
  • Это делает жизнь намного проще: перевод между простым и хорошо понятным JSON над AJAX запросом внутри сервера односторонний приложении тривиален (и браузер независим)