国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
openfire推送離線聊天信息插件

  1.  * 
  2.  * Licensed under the Apache License, Version 2.0 (the "License"); 
  3.  * you may not use this file except in compliance with the License. 
  4.  * You may obtain a copy of the License at 
  5.  * 
  6.  *     http://www.apache.org/licenses/LICENSE-2.0 
  7.  * 
  8.  * Unless required by applicable law or agreed to in writing, software 
  9.  * distributed under the License is distributed on an "AS IS" BASIS, 
  10.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
  11.  * See the License for the specific language governing permissions and 
  12.  * limitations under the License. 
  13.  */  
  14. package com.hyh.offlinemessage.plugin;  
  15.   
  16. import java.io.File;  
  17. import java.io.IOException;  
  18. import java.sql.Timestamp;  
  19. import java.util.Date;  
  20. import java.util.List;  
  21. import org.jivesoftware.database.SequenceManager;  
  22. import org.jivesoftware.openfire.PresenceManager;  
  23. import org.jivesoftware.openfire.XMPPServer;  
  24. import org.jivesoftware.openfire.container.Plugin;  
  25. import org.jivesoftware.openfire.container.PluginManager;  
  26. import org.jivesoftware.openfire.interceptor.InterceptorManager;  
  27. import org.jivesoftware.openfire.interceptor.PacketInterceptor;  
  28. import org.jivesoftware.openfire.interceptor.PacketRejectedException;  
  29. import org.jivesoftware.openfire.session.Session;  
  30. import org.jivesoftware.openfire.user.User;  
  31. import org.jivesoftware.openfire.user.UserManager;  
  32. import org.jivesoftware.openfire.user.UserNotFoundException;  
  33. import org.slf4j.Logger;  
  34. import org.slf4j.LoggerFactory;  
  35. import org.xmpp.packet.IQ;  
  36. import org.xmpp.packet.JID;  
  37. import org.xmpp.packet.Message;  
  38. import org.xmpp.packet.Packet;  
  39. import org.xmpp.packet.Presence;  
  40. import org.jivesoftware.openfire.XMPPServer;  
  41. import org.jivesoftware.openfire.container.Plugin;  
  42. import org.jivesoftware.openfire.container.PluginManager;  
  43. import org.jivesoftware.openfire.user.User;  
  44. import org.jivesoftware.openfire.user.UserManager;  
  45. import org.jivesoftware.openfire.PresenceManager;  
  46. import org.jivesoftware.util.JiveGlobals;  
  47. import org.jivesoftware.util.Log;  
  48.   
  49. /** 
  50.  * send offline msg plugin 
  51.  */  
  52. public class OfflineMsg implements PacketInterceptor, Plugin {  
  53.     private static final Logger log = LoggerFactory.getLogger(OfflineMsg.class);  
  54.     // Hook for intercpetorn  
  55.     private InterceptorManager interceptorManager;  
  56.     private static PluginManager pluginManager;  
  57.     private UserManager userManager;  
  58.     private PresenceManager presenceManager;  
  59.   
  60.     public OfflineMsg() {  
  61.     }  
  62.   
  63.     public void debug(String str) {  
  64.         if (true) {  
  65.             // System.out.println(str);  
  66.         }  
  67.     }  
  68.   
  69.     public void initializePlugin(PluginManager manager, File pluginDirectory) {  
  70.         interceptorManager = InterceptorManager.getInstance();  
  71.         interceptorManager.addInterceptor(this);  
  72.         XMPPServer server = XMPPServer.getInstance();  
  73.         userManager = server.getUserManager();  
  74.         presenceManager = server.getPresenceManager();  
  75.         pluginManager = manager;  
  76.         this.debug("start offline 1640");  
  77.     }  
  78.   
  79.     public void destroyPlugin() {  
  80.         this.debug("start offline 1640");  
  81.     }  
  82.   
  83.     /** 
  84.      * intercept message 
  85.      */  
  86.     @Override  
  87.     public void interceptPacket(Packet packet, Session session,  
  88.             boolean incoming, boolean processed) throws PacketRejectedException {  
  89.         JID recipient = packet.getTo();  
  90.         if (recipient != null) {  
  91.             String username = recipient.getNode();  
  92.             // if broadcast message or user is not exist  
  93.             if (username == null  
  94.                     || !UserManager.getInstance().isRegisteredUser(recipient)) {  
  95.                 return;  
  96.             } else if (!XMPPServer.getInstance().getServerInfo()  
  97.                     .getXMPPDomain().equals(recipient.getDomain())) {  
  98.                 // not from the same domain  
  99.                 return;  
  100.             } else if ("".equals(recipient.getResource())) {  
  101.             }  
  102.         }  
  103.         this.doAction(packet, incoming, processed, session);  
  104.     }  
  105.   
  106.     /** 
  107.      * send offline msg from this function 
  108.      */  
  109.     private void doAction(Packet packet, boolean incoming, boolean processed,  
  110.             Session session) {  
  111.         Packet copyPacket = packet.createCopy();  
  112.         if (packet instanceof Message) {  
  113.             Message message = (Message) copyPacket;  
  114.             if (message.getType() == Message.Type.chat) {  
  115.                 if (processed || !incoming) {  
  116.                     return;  
  117.                 }  
  118.                 Message sendmessage = (Message) packet;  
  119.                 String content = sendmessage.getBody();  
  120.                 JID recipient = sendmessage.getTo();  
  121.                 // get message  
  122.                 try {  
  123.                     if (recipient.getNode() == null  
  124.                             || !UserManager.getInstance().isRegisteredUser(  
  125.                                     recipient.getNode())) {  
  126.                         // Sender is requesting presence information of an  
  127.                         // anonymous user  
  128.                         throw new UserNotFoundException("Username is null");  
  129.                     }  
  130.                     Presence status = presenceManager.getPresence(userManager  
  131.                             .getUser(recipient.getNode()));  
  132.                     if (status != null) {  
  133.                         this.debug(recipient.getNode() + " online111"  
  134.                                 + ",message: " + content);  
  135.                     } else {  
  136.                         this.debug(recipient.getNode() + " offline111"  
  137.                                 + ",message: " + content);  
  138.                         /* 
  139.                          * add your code here to send offline msg 
  140.                          * recipient.getNode() : receive's id,for example,if 
  141.                          * receive's jid is "23@localhost", receive's id is "23" 
  142.                          * content: message content 
  143.                          */  
  144.                     }// end if  
  145.                 } catch (UserNotFoundException e) {  
  146.                     this.debug("exceptoin " + recipient.getNode() + " not find"  
  147.                             + ",full jid: " + recipient.toFullJID());  
  148.                 }  
  149.             } else if (message.getType() == Message.Type.groupchat) {  
  150.                 List<?> els = message.getElement().elements("x");  
  151.                 if (els != null && !els.isEmpty()) {  
  152.                 } else {  
  153.                 }  
  154.             } else {  
  155.             }  
  156.         } else if (packet instanceof IQ) {  
  157.             IQ iq = (IQ) copyPacket;  
  158.             if (iq.getType() == IQ.Type.set && iq.getChildElement() != null  
  159.                     && "session".equals(iq.getChildElement().getName())) {  
  160.             }  
  161.         } else if (packet instanceof Presence) {  
  162.             Presence presence = (Presence) copyPacket;  
  163.             if (presence.getType() == Presence.Type.unavailable) {  
  164.             }  
  165.         }  
  166.     }  
  167. }  


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
源碼詳解openfire保存消息記錄_修改服務(wù)端方式
openfire3.6.3插件開發(fā)方法(經(jīng)小組測試成功)
通過openfire發(fā)送文字
Android客戶端基于XMPP的IM(openfire+asmack)的聊天工具之環(huán)境搭建及與服務(wù)器建立連接(一)
一個gtalk的robot的簡單實現(xiàn)
java實現(xiàn)簡單XMPP發(fā)送消息和文件的簡單例子
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服