Отслеживание местоположения в реальном времени - программа Windows или браузер на базе?

StackOverflow https://stackoverflow.com/questions/2971258

Вопрос

Я хочу отслеживать несколько сотен, может быть, несколько тысяч человек в режиме реального времени.

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

Теперь я хочу вытащить это и показать это в режиме реального времени.

Weeeell ... "Реальное" время ". Допустим, я хочу нарисовать план пола здания и построить всех каждые 1-5 секунд.

(Я бы хотел показать только определенные «виды» людей на щелчке кнопки; мне понадобятся данные о данных и т. Д., Но давайте придержимся худшего сценария случая).

Мне достаточно комфортно с PHP, хотя и не такого рода вещей. Лично я был бы счастливее с приложением Windows, кодированным в Delphi, но, похоже, эта тенденция заключается в том, чтобы сделать все, что начнется браузером.

Итак, вопрос, я думаю, заключается в том, может ли браузер справиться с этим и есть ли убедительные аргументы для решения на основе Windows или браузера.

Если на основе браузера это может справиться с этим (отображая несколько тысяч точек данных за секунду), и нет никаких ошеломляющих аргументов для Windows, то я думаю, что я пойду за браузером и узнаю несколько новых трюков. Очевидным преимуществом является то, что я также мог бы повторно использовать большую часть своего кода для (транспортного средства) отслеживания на картах Google.

Это было полезно?

Решение

Большая часть вашей работы, вероятно, будет сделана в вашей пространственно включенной реляционной базе данных. Например, PostGIS может выбрать точки данных в пределах ограничивающего ящика или более сложных пространственных предикатов (ST_Contains, ST_Crosses, ST_INTERSCES, ST_TOUCHES, ...), а также обычные соединения SQL и где условия. Spatial Selects должен использовать пространственный индекс для ускорения.

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

Что касается скорости рендеринга, это действительно зависит от того, как вы планируете отображать свою карту. Есть Скоровые тесты Доступно для карт Google. Тем не менее, я подозреваю, что если вы планируете интерфейс типа Google Maps несколько тысяч Точки превратятся в размытие булавок. У вас есть интерфейсный макет?

Другие советы

Если вы будете счастливее с одним типом приложения по сравнению с другим, напишите этот тип приложения. Не делайте что -то приложение для браузера, чтобы сделать его приложением браузера.

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

Может быть, кажется немного старой шляпой, но если вы решите поехать на основе браузера, вы можете предварительно доставить точки на изображение и просто показать изображение?

Вебсокеты

Взгляните на HTML5 Вебсокеты, они являются новым стандартом для обмена данными сервера/браузера:

WebSockets-это технология, обеспечиваемая двунаправленными, полнодуплексными каналами связи, над одним сокетом протокола управления передачи (TCP), предназначенным для реализации в веб-браузерах и веб-серверах.

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

Списки страницы Википедии Доступные реализации на стороне сервера, включая версии PHP (но не Delphi).

Вебсокеты не связаны с JavaScript, websockets.org Page говорит:

Кроме того, протокол веб -сокетов можно использовать для поддержки разнообразного набора клиентов (например, JavaScript, Adobe Flex, Javafx, Microsoft Silverlight и т. Д.). Тем не менее, спецификация HTML5 только определяет поддержку JavaScript, которая ограничена текстовыми протоколами. Чтобы обслуживать другие типы клиента и поддержать бинарные протоколы, вам нужно будет обратиться за внешними предложениями.

Данные сообщений можно обмениваться в Json Формат, который поддерживается JavaScript, а также доступен для Delphi (в качестве реализаций с открытым исходным кодом, таких как SuperObject или Lkjson).


Аякс

Аякс Богатые интернет -приложения на основе Delphi могут быть построены с использованием intraweb или Экстускал. Экстускал является объектом Pascal (Delphi, Freepascal/Lazarus) обертка/привязка для Ext JS, полная структура GUI Ajax и предлагает прозрачную поддержку для всех основных веб -браузеров: IE 6+, Firefox 1.5+, Safari 3+, Opera 9+ и Chrome 2+ на любой клиентской стороне (ПК, смартфона, iPhone, PDA и т. Д. ) Онлайн -демонстрационные приложения: Fishfacts, более.

Ajax push (aka Обратный аякс / Комета) предложения "HTTP Server Push«Данные (в формате XML или JSON), которые передают данные с сервера на всех подключенных клиентов веб -браузера всякий раз, когда данные об изменениях сервера. Клиенты могут« подписаться »на интересующую ими информацию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top