Открытое уведомление Openfire через PHP

Я установил Openfire 3.10.2 на Ubuntu 12.04 .

Чат работает нормально и для автономного управления сообщениями я установил плагин CallbackOnOffline . Когда получатель находится в автономном режиме, вызывается URL-адрес.

Плагин загружает URL-адрес из свойства plugin.callback_on_offline.url , добавляет параметры «to» и «from» и выполняет асинхронный запрос GET. Образец ссылки .

Я проверил, какую информацию я получаю от этого, и у меня есть «от» и «от», но мне также нужны те вместе с сообщением для push-уведомлений.


Важная часть :-


Я хочу настроить плагин CallbackOnOffline openfire, и я хочу добавить еще один параметр «message». Как я могу это сделать?

Вы найдете здесь код: https://github.com/igniterealtime/Openfire/blob/master/src/plugins/callbackOnOffline/src/java/com/fotsum/CallbackOnOffline.java

Теперь, как создать .jar-файл , который требует, чтобы установить устанавливаемый плагин в openfire?

    У меня также была та же проблема, и я решил ее, создав новую таблицу «TblPushNotification». Для хранения автономных сообщений используется таблица с именем «ofOffline», поэтому я добавил триггер в таблицу «ofOffline» базы данных. Триггер извлечет XML и добавит все атрибуты в «TblPushNotification», чтобы вы могли напрямую проверить эту таблицу для отправки push-уведомления.

    Детали моих таблиц см. Ниже.

     CREATE TABLE IF NOT EXISTS `TblPushNotification` ( `id` int(11) NOT NULL, `message_id` int(11) NOT NULL, `from_user_id` text NOT NULL, `to_user_id` text NOT NULL, `message` text NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ; ALTER TABLE `TblPushNotification` ADD PRIMARY KEY (`id`), ADD KEY `message_id` (`message_id`); ALTER TABLE `TblPushNotification` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; 

    Для триггера используйте следующий запрос.

     CREATE TRIGGER `PushNotification` AFTER INSERT ON `ofOffline` FOR EACH ROW BEGIN DECLARE strMessageText VARCHAR(500) DEFAULT ''; DECLARE strSenderId VARCHAR(500) DEFAULT ''; DECLARE strReceiverId VARCHAR(500) DEFAULT ''; DECLARE intMessageId INT DEFAULT 1; SET strMessageText = ExtractValue(NEW.stanza, 'message/body[1]'); SET strSenderId = ExtractValue(NEW.stanza, 'message/@from[1]'); SET strReceiverId = ExtractValue(NEW.stanza, 'message/@to[1]'); SET intMessageId = NEW.messageID; INSERT INTO TblPushNotification (message_id,from_user_id,to_user_id,message) VALUES (intMessageId,strSenderId,strReceiverId,strMessageText); 

    Теперь он всегда будет извлекать XML ofOffline для TblPushNotification и вы можете запускать запрос перед отправкой push-уведомления.

    Если вы хотите добавить дополнительные параметры в ссылку. Вам необходимо расширить плагин CallbackOnOffline. Вы найдете здесь код: https://github.com/igniterealtime/Openfire/blob/master/src/plugins/callbackOnOffline/src/java/com/fotsum/CallbackOnOffline.java

    Если вы посмотрите на класс java, вы найдете в строке 109 и 110 параметр «to» и «from», который будет отправлен назад (обратный вызов). Просто добавьте туда свой параметр со значением, которое вам нужно.

    Обновление: после этого вам нужно снова построить плагин с ANT. Узнайте, как создать плагин: https://www.igniterealtime.org/builds/openfire/docs/latest/documentation/plugin-dev-guide.html

    Вызывать

     -- -- Triggers `ofOffline` -- DELIMITER // CREATE TRIGGER `PushNotification` AFTER INSERT ON `ofOffline` FOR EACH ROW BEGIN DECLARE strMessageText VARCHAR(500) DEFAULT ''; DECLARE strSenderId VARCHAR(500) DEFAULT ''; DECLARE strReceiverId VARCHAR(500) DEFAULT ''; DECLARE intMessageId INT DEFAULT 1; SET strMessageText = ExtractValue(NEW.stanza, 'message/body[1]'); SET strSenderId = ExtractValue(NEW.stanza, 'message/@from[1]'); SET strReceiverId = ExtractValue(NEW.stanza, 'message/@to[1]'); SET intMessageId = NEW.messageID; INSERT INTO push_notification (message_id,from_user_id,to_user_id,message) VALUES (intMessageId,strSenderId,strReceiverId,strMessageText); END // DELIMITER ; 

    Таблица :

     CREATE TABLE IF NOT EXISTS `push_notification` ( `id` int(11) NOT NULL, `message_id` int(11) NOT NULL, `from_user_id` text NOT NULL, `to_user_id` text NOT NULL, `message` text NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;