Автономное уведомление Openfire через переполнение стека

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

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

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

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


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


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

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

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

8

Решение

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

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

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

4

Другие решения

У меня тоже была такая же проблема, и я решил ее, создав новую таблицу «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-уведомления.

3

Спусковой крючок

--
-- 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 ;
1
По вопросам рекламы [email protected]