我在Openfire 3.10.2
安装了Ubuntu 12.04
。
聊天工作正常,对于离线消息管理我安装了CallbackOnOffline插件。当收件人离线时,会调用一个URL。
该插件从plugin.callback_on_offline.url
属性加载网址,添加'到'和'来自'参数并执行异步GET请求。 Sample Link
我检查了从中获得的信息,我得到了一个"到#34;和"来自",但我还需要这些以及推送通知的消息。
重要部分: -
我想自定义openfire的CallbackOnOffline插件,我想再添加一个参数" message"。我怎么能这样做?
现在,如何创建.jar文件,这需要在openfire中制作可安装的插件?
答案 0 :(得分:4)
如果要向链接添加更多参数。您需要扩展CallbackOnOffline插件。您可以在此处找到代码:https://github.com/igniterealtime/Openfire/blob/master/src/plugins/callbackOnOffline/src/java/com/fotsum/CallbackOnOffline.java
如果你看一下java课程,你会在第109和110行找到"到" "来自"将被发回的参数(回调)。只需添加您需要的参数即可。
更新: 之后,您需要再次使用ANT构建插件。了解如何构建插件:https://www.igniterealtime.org/builds/openfire/docs/latest/documentation/plugin-dev-guide.html
答案 1 :(得分:3)
我也有同样的问题,我通过创建一个新的表“TblPushNotification”来解决它。名为'ofOffline'的表用于存储脱机消息,因此我将触发器添加到数据库的“ofOffline”表中。触发器将提取XML并将所有属性添加到“TblPushNotification”,以便您可以直接检查该表以发送推送通知。
请查看我的表格详情如下
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);
现在它将始终将ofOffline平板电脑的XML提取为TblPushNotification,您可以在发送推送通知之前触发查询。
答案 2 :(得分:1)
触发
--
-- 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 ;