Как уведомить мое приложение для Android, когда что-то изменится в базе данных MySQL - PullRequest
0 голосов
/ 17 июня 2019

У меня есть вопрос об уведомлении в реальном времени в MySQL.Я хочу, чтобы при изменении в конкретной таблице базы данных MySQL, база данных уведомляла мое приложение для Android, что оно что-то делает.

Возможно ли это сделать?Я слышал, что триггер может помочь, но я ничего не нашел об этом в сети, особенно для Android.

Я создаю приложение чата в реальном времени для проекта Android в университете.Требуется использовать сервлет в проекте, поэтому мой сервлет выполняет запросы к базе данных и отправляет данные в приложение.Для этого приложение каждую секунду отправляет сервлету запрос GET для получения новых сообщений.Я хотел бы не делать эти запросы и обновлять список сообщений только при изменении базы данных.Я знаю, что это может быть сделано, например, с помощью firebase, но, используя сервлет, я хотел бы знать, есть ли способ уведомлять приложение, когда происходит это изменение.

Сообщения вставляются в БД сзапрос POST к сервлету, который обновляет базу данных;информация о сообщениях берется из редактируемого текста в приложении, и с помощью кнопки отправки я делаю запрос, поэтому мне нужно только нажать на приложение Android, когда в БД обнаруживаются новые сообщения.

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

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

0 голосов
/ 18 июня 2019

'Возможно ли это?' На вопросы всегда сложно ответить. Ответ почти всегда «да», но «это целесообразно», «это хорошая идея», «это рекомендуется», вот где все становится сложнее. Я не знаю, каким образом изменение базы данных MySQL могло бы уведомить отдельные установки приложений Android после изменения. Тем не менее, работающий экземпляр приложения Android может опрашивать базу данных MySQL и искать структуру таблицы, и если структура этой таблицы отличается от структуры последнего опроса, он может что-то сделать.

Это может привести к большим накладным расходам, поскольку приложение будет постоянно опрашивать базу данных MySQL для проверки структуры таблицы. Это добавило бы много требований к вашей установке MySQL, съело бы большую пропускную способность пользователя приложения и тарифный план.

Итак, «возможно», да. «рекомендуется», нет.

Один вопрос: каков сценарий, в котором, как вы думаете, структура таблицы может измениться, и как часто это может происходить? Многие люди проверяют структуру таблиц базы данных только один раз, когда приложение запускает новый сеанс. Если при запуске обнаруживается изменение, оно может внести необходимые локальные изменения в свою логику, а затем предположить, что структура останется неизменной до конца сеанса. Это устранило бы постоянный опрос и другие негативные поведения, о которых я упоминал ранее.

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