Передача данных из базы данных в пользовательский интерфейс в режиме реального времени

У меня есть база данных (MySQL), в которую записываются данные. Мне нужно отправить новые записи и измененные записи в пользовательский интерфейс. Здесь есть несколько ограничений: у меня нет контроля над кодом, который записывает в эту базу данных, и я не могу модифицировать его для записи в очередь.

До сих пор я периодически читаю БД на наличие изменений и новых дополнений (используя метку времени последнего обновления) и отправляю эти данные в базу данных mongo (поскольку я не хочу поражать основной сервер MySQL для каждого запроса). Затем я отправляю эти изменения во внешний интерфейс, используя Cramp (ruby framework) и события, отправленные сервером. Чтобы поддерживать очередь для каждого пользователя, у меня есть Redis.

Я понимаю, что это запутанный способ выполнения push в реальном времени. Мне было интересно, есть ли более аккуратное решение этого беспорядка.


person piyush    schedule 04.10.2012    source источник


Ответы (1)


Если вы хотите передавать данные с сервера в реальном времени, используйте технологии, обеспечивающие доступ в реальном времени. Я бы порекомендовал вам использовать веб-сокеты.

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

person Anshu    schedule 04.10.2012
comment
я уже использую SSE, который лучше подходит для моего варианта использования, чем веб-сокеты. - person piyush; 04.10.2012