Как получить обновленные записи в режиме реального времени? (push-уведомления?)

Я пытаюсь создать приложение электронной коммерции ruby ​​on rails, где потенциальные клиенты смогут разместить заказ, а владелец магазина сможет получить заказ в режиме реального времени . Завершенный заказ будет записан в базу данных (на данный момент SQLite), и у владельца магазина будет открыто окно браузера, в котором новые заказы появятся сразу после завершения заказа. (Информация о приложении: я использую платформу рельсов HOBO и планирую разместить приложение в Heroku)

Сейчас я рассматриваю лучшую технологию для реализации этого, так как ожидается, что приложение будет отправлять много пользователей. много заказов:

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

2) Как и выше, но опрашивайте сервер с помощью какой-то инфраструктуры AJAX.

3) Используйте какую-то технологию push-запросов сервера, например асинхронный обмен сообщениями 'comet' , Нашел Juggernaut, единственная проблема в том, что он использует Flash и пользовательские порты, и это может быть проблемой, так как мое приложение должно быть доступно за корпоративными брандмауэрами и NAT.

4) Я также проверяю инфраструктуру node.js, похоже, что он эффективен для такого рода асинхронных сообщений, хотя он не поддерживается в Heroku.

Какой самый эффективный способ реализовать такую ​​функциональность? Может быть, есть другой способ, о котором я не подумал?

Спасибо за ваше время и помощь!

6
задан Alex 1 September 2010 в 14:04
поделиться