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

打開APP
userphoto
未登錄

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

開通VIP
[原創(chuàng)]openfire發(fā)送消息插件(說明和源碼)

實現(xiàn)功能:

對用戶發(fā)送消息,如果在線就直接發(fā)送,不在線時存為離線消息

對組發(fā)送消息,如果在線就直接發(fā)送,不在線時存為離線消息

以下是插件配置:

說明參考:http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/plugin-dev-guide.html

<?xml version="1.0" encoding="UTF-8"?>
<plugin>
    <class>org.jivesoftware.openfire.plugin.Msger</class>
    <name>${msger.plugin.name}</name>
    <description>${msger.plugin.description}</description>
    <author>leon</author>
    <version>1.0.0</version>
    <date>2/20/2009</date>
    <url>http://hi.baidu.com/jyleon</url>
    <minServerVersion>3.6.3</minServerVersion>
                            
<adminconsole>
        <tab id="tab-session">        
            <sidebar id="sidebar-tools" description="${msger.sidebar.name}">
               <item id="msger-send" name="${msger.sendToUser}" description="${msger.sendToUser.title}" url="msger-send.jsp"/>                     
               <item id="msger-sendGroup" name="${msger.sendToGroup}" description="${msger.sendToGroup.title}" url="msger-sendGroup.jsp"/>                      
            </sidebar>
        </tab>
    </adminconsole>
</plugin>

要注意的是:

1、<sidebar id="sidebar-tools" description="${msger.sidebar.name}">    
      id="sidebar-tools"   是把這個插件放到openfire導(dǎo)航的“會話”的“工具”下面。(openfire導(dǎo)航標簽參考admin-sidebar.xml ),${msger.sidebar.name} 國際化設(shè)置,如果不設(shè)置的話,只能用英文

2、 <item id="msger-send" name="${msger.sendToUser}" description="${msger.sendToUser.title}" url="msger-send.jsp"/>  

      功能是新加一個連接“對用戶發(fā)送消息”,連接到msger-send.jsp

      注意:openfire使用的是:Sitemesh 頁面裝飾框架,插件標簽中定義 id="msger-send" ,那么msger-send.jsp 必須要在head里添加:<meta name="pageID" content="msger-send"/>,否則將無法正常顯示。

3、 <minServerVersion>3.6.3</minServerVersion> 插件定義openfire服務(wù)的版本,不能上傳低于3.6.3的版本。如低于3.6.3,將此處改成與openfire 對應(yīng)的版本號即可。

4. jsp 代碼 msger-send.jsp

< import="org.jivesoftware.openfire.XMPPServer"%>
<%@ page import="java.util.*" %>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/style/global.css">
<%@ taglib uri="<%@ taglib uri="<title><fmt:message key="msger.sendToUser.title"/></title>
<meta name="pageID" content="msger-send"/>
</head>
<jsp:useBean id="webManager" class="org.jivesoftware.util.WebManager" />
<body>
<%@ page import="org.jivesoftware.openfire.PresenceManager,
                 org.jivesoftware.openfire.group.Group,
                 org.jivesoftware.openfire.group.GroupManager,
                 org.jivesoftware.openfire.user.User,
                 org.jivesoftware.openfire.user.UserManager,
                 org.jivesoftware.openfire.user.UserNotFoundException,
                 org.jivesoftware.util.ParamUtils,
                 org.jivesoftware.openfire.SessionManager,
                 org.xmpp.packet.JID,
                 org.xmpp.packet.Message,
                 java.util.Collection"
    errorPage="error.jsp"
%>

<%    
    boolean send = ParamUtils.getBooleanParameter(request,"send"); 
    String toUser = ParamUtils.getParameter(request,"toUser");
    String fromUser = ParamUtils.getParameter(request,"fromUser");
    String message = ParamUtils.getParameter(request,"message");
    
String success=null;

    if (send) {
   //send to user
   SessionManager sessionManager = webManager.getSessionManager();
   PresenceManager presenceManager = webManager.getPresenceManager();
   UserManager userManager = webManager.getUserManager();
   String serverDomainName =XMPPServer.getInstance().getServerInfo().getXMPPDomain();
  
  
   User user=null;
   JID toUserJid= null;
   JID fromUserJid= null;
  
   if(fromUser!=null)
    fromUserJid=new JID(fromUser+"@"+serverDomainName); 
   else
    fromUserJid=new JID(");   
  
   if(toUser!=null&&message!=null&&userManager.isRegisteredUser(toUser)==true){
        
         try {
             user = userManager.getUser(toUser);
                  
          
         if (presenceManager.isAvailable(user)) {
         // online messages
      toUserJid = presenceManager.getPresence(user).getFrom();
      sessionManager.sendServerMessage(toUserJid , null, message);     
     
      success="true";
     }else{
     // offline message
      toUserJid =new JID(toUser+"@"+serverDomainName);    
     
      if(toUserJid!=null){
       Message msg = new Message();
       msg.setBody(message);
       msg.setTo(toUserJid);
       msg.setFrom(fromUserJid);
       XMPPServer.getInstance().getOfflineMessageStrategy().storeOffline(msg);
      }
      success="true";
     }
         }
         catch (UserNotFoundException e) {
         success="fail";
         e.printStackTrace();
         }
        }else{
        success="fail";
        
        }
}
       


%>

<% if (success=="true") { %>

    <div class="jive-success">
    <table cellpadding="0" cellspacing="0" border="0">
    <tbody>
        <tr><td class="jive-icon"><img src="images/success-16x16.gif" width="16" height="16" border="0" alt=""></td>
        <td class="jive-icon-label">
        <fmt:message key="msger.sendReault.success" />
        </td></tr>
    </tbody>
    </table>
    </div><br>

<% }if(success=="fail"){ %>
<div class="jive-success">
    <table cellpadding="0" cellspacing="0" border="0">
    <tbody>
        <tr><td class="jive-icon"><img src="images/error-16x16.gif" width="16" height="16" border="0" alt=""></td>
        <td class="jive-icon-label">
        <fmt:message key="msger.sendReault.fail" />! <fmt:message key="msger.sendReault.fail.nouser" /> , <fmt:message key="msger.sendReault.fail.noContent" />
        </td></tr>
    </tbody>
    </table>
    </div><br>
<%}%>

<table cellpadding="3"> 
<form action="msger-send.jsp" id="sendMsg" method="post">
<tr>
   <td><fmt:message key="msger.sendToUser"/></td>
      <td><input type="text" name="toUser" id="toUser"></td> 
</tr>

   <tr>
    <td> <fmt:message key="msger.sendContent"/></td>
    <td><textarea rows="10" name="message" cols="60"></textarea></td> 
   <tr>
   <td></td>
       <td>
    <input type="submit" value="<fmt:message key="msger.send.submit"/>"><input type="hidden" name="send" value="true">
       </td>
</tr>
</form>
</table>
  

</body>
</html>

openfire的插件開發(fā),是一件很有意思的事情,這只是在初期學(xué)的時候的一些總結(jié)和經(jīng)驗,適合新手。希望更多的人參與進來,大家共同研究。

插件下載:發(fā)送消息插件


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
openfire發(fā)送消息插件(說明和源碼)
基于Openfire消息服務(wù)器應(yīng)用Smack發(fā)送即時消息源碼示例
openfire 詳細介紹一
Android客戶端基于XMPP的IM(openfire+asmack)的聊天工具之環(huán)境搭建及與服務(wù)器建立連接(一)
openfire原理和源碼分析
openFire 源碼解讀
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服