Передача данных из базы данных в пользовательский интерфейс в режиме реального времени
У меня есть база данных (MySQL), в которую записываются данные. Мне нужно выдвинуть новые записи и изменить записи в пользовательском интерфейсе. Здесь есть несколько ограничений: у меня нет контроля над кодом, который пишет в эту базу данных, и я не могу изменить его для записи в очередь.
До сих пор я периодически читаю БД на предмет изменений и новых дополнений (используя отметку времени последнего обновления) и помещаю эти данные в базу данных mongo (поскольку я не хочу попадать на главный сервер MySQL для каждого запроса). Затем я отправляю эти изменения во внешний интерфейс, используя cramp (ruby framework) и события, отправленные сервером. Для поддержки каждой пользовательской очереди, у меня есть redis в миксе.
Я понимаю, что это искусный способ сделать толчок в реальном времени. Мне было интересно, есть ли более аккуратное решение этого беспорядка.
1 ответ
Если вы хотите передавать данные в реальном времени с сервера, используйте технологии, обеспечивающие доступ в реальном времени. Я бы порекомендовал вам использовать Websockets.
Единственная проблема заключается в том, что веб-сокеты поддерживаются не всеми браузерами. Чтобы позаботиться об этом, вы можете использовать доступные платформы, построенные на веб-сокетах, которые обеспечивают откат к протоколам, поддерживаемым браузерами, такими как длинный опрос, потоковая передача и т. Д. предложил бы использовать:
- Структура атмосферы - https://github.com/Atmosphere/atmosphere
- Играй в рамки! - http://www.playframework.org/