Я разработал веб-приложение, в котором подписанный пользователь должен отправить сообщение серверу, сообщая, что он все еще находится в сети каждые 3 секунды. Затем сообщение обрабатывается сервером, а хранимая процедура вызывается в Mysql, чтобы установить статус пользователя в онлайн. Я рассмотрел аналогичные проблемы, в которых сравниваются кометы и Ajax (here или here), но учитывая, что допустима 3-секундная задержка, и максимальные пользователи из 1000 находятся в сети в системе, использует Ajax по разумному выбору, или комета должна быть используемый?Ajax vs Comet (не чат-приложение)
ответ
Для такого рода особенность кометы является более подходящим:
- Ваши клиенты посылают сообщения (я онлайн)
- Ваш сервер вещания обработанное сообщение (пользователь X по-прежнему онлайн)
Посредством ajax вы только обслуживаете сообщения на сервере.
Для того, чтобы получить «эффект широковещания» в режиме ajax. В итоге вы сделаете нечто похожее на комету, но с меньшей пропускной способностью.
Ajax:.
- Клиент отправить сервер - я нахожусь в
- Process Server
- сервер отправить обратно к списку клиентов пользователя в
В этом случае каждый клиент спросить каждые 3 секунды база данных для COMPLETE «in».
В комете:
- сервер X отправить клиента - я нахожусь в
- Process Server
- сервер отправить обратно клиенту S, что пользователь X по-прежнему онлайн
В этом случае каждый клиент сообщает серверу каждые 3 секунды, что он находится. Сервер отправляет обратно каждому подключенному клиенту ТОЛЬКО, что х по-прежнему в
Comet просто метод для передачи назад и толкать сообщения клиента Ajax является методом, чтобы передавать информацию клиента к серверу без необходимости обновлять всю страницу.
кавычки википедии: http://en.wikipedia.org/wiki/Comet_%28programming%29
Comet известен несколько других названий, в том числе Ajax Нажмите, Reverse Ajax, Двусторонний-сеть, HTTP Streaming и HTTP-сервер толчок среди других.
Так что комета :)
Если вы ничего не транслируется, то просто Ajax является лучшим вариантом
сервер не передает ничего обратно клиенту. он просто вызывает процедуру в Mysql, когда клиент получает сообщение. процедура в основном является оператором SQL. –
Тогда ajax более уместен – Krilivye
В данном конкретном случае, так как вам не нужно отправить какую-либо информацию от сервера к клиент (ы), я считаю, что Ajax является более подходящим решением. Каждые три секунды клиент сообщает серверу, что он подключен, база данных обновляется, и все готово.
Это может быть сделано с использованием кометы, и в этом случае вы будете в основном пинговать каждого зарегистрированного клиента, чтобы убедиться, что он все еще подключен. Но вам все равно нужно будет запускать запрос в базе данных для каждого клиента, который отвечает, плюс вам все равно потребуется, чтобы клиент уведомил сервер о его первоначальном подключении. Итак, мне кажется, что комета будет больше проблем, чем того стоит. Единственное, что может иметь смысл, это то, что вы могли бы пинговать каждого зарегистрированного клиента и хранить ответы в памяти, а затем, когда все клиенты были pinged, вы можете запустить один единственный запрос, чтобы обновить все их статусы. Это даст вам дополнительный бонус знания, как только клиент отключится, а не ждет тайм-аута. К сожалению, это выходит за рамки моего опыта работы с Comet, поэтому на данный момент я не могу помочь реализовать его.
- 1. Comet VS Ajax polling
- 2. Comet vs Ajax для общения
- 3. Comet, Ajax Push, Reverse Ajax
- 4. Возможности COMET над AJAX
- 5. ASP.NET MVC Async Controller vs Server Push (COMET/Reverse Ajax)
- 6. Обратный Ajax (Comet) с ASP.NET
- 7. COMET с классическим чатом AJAX
- 8. Как сделать C# Ajax Comet через WebAPI2?
- 9. PHP AJAX Comet с MySQL выберите запись
- 10. .NET Comet engine
- 11. nginx proxy to comet
- 12. Comet - ошибка PHP, показывающая
- 13. Node.js и Comet
- 14. Pylons and NodeJS/Comet
- 15. Масштабируемость сервера - веб-камеры HTML 5 vs Comet
- 16. Ajax Push Engine (Comet) и постоянный чат - как реализовать?
- 17. Невозможно использовать ajax-upload из-за сервера comet ape
- 18. ASP MVC - Comet/Reverse Ajax/PUSH - Безопасен ли этот код?
- 19. Websocket vs Ajax vs cometd
- 20. События Comet, Tomcat и READ
- 21. Comet Help on linux hosting
- 22. ajax - Ajax vs document.getElementById(). InnerHTML
- 23. JavaScript Hidden iFrame comet
- 24. COMET реализация для Drupal
- 25. Comet on python
- 26. Что лучше реализация JETTY COMET или реализация COMET Resin
- 27. Comet Javascript error
- 28. JSF2 ajax vs RichFaces ajax
- 29. Erlang, membase и comet
- 30. Python Comet Server
Как вы описали, вам необходимо отправить данные с клиента на сервер каждые 3 секунды. Поэтому для вашей потребности вы можете использовать AJAX. Всякий раз, когда вы хотите передавать информацию с сервера на клиент, где информация о доступности неизвестна, вы можете подумать о комете. – Seshagiri
websockets ftw ;-) – zerkms
веб-сокет не является вариантом, так как приложение должно работать в IE –