導航:首頁 > 源碼編譯 > openfire伺服器源碼

openfire伺服器源碼

發布時間:2024-04-04 15:58:41

1. 利用Eclipse+openJTAG調試文件

1、准備基本開發環境(jdk、eclipse),部署步驟不一一贅述;
2、從網上下載openfire的源碼(我下載的是openfire3.7.0),解壓文件夾
3、啟動eclipse,使用openfire源碼新建java工程,簡單方法是將解壓源代碼放到workspace中,新建工程與文件夾名稱相同,eclipse會自動為我們把文件載入進來;
4、工程創建完成後我遇到了一個問題:cluster插件報錯,出現類找不到的錯誤,難道源碼下載不全,google一下知道,原來少了幾個jar包(coherence.jar、coherence-work.jar、tangosol.jar),下載之,在出錯的插件clustering文件夾中與src平級建立文件夾lib,將三個jar包放到文件夾中,刷新工程,錯誤消失了;
5、添加Ant透視圖,在Ant透視圖中添加build.xml文件(文件在build目錄下),打開樹,雙擊openfire[default]進行編譯

2. openfire做伺服器,網頁客戶端怎麼做

如果你下載的是exe文件,執行你的安裝文件,進行安裝。這里我是zip的文件。解壓後,復制openfire目錄到F:\Program Files (x86)\Openfire目錄(自己平常安裝軟體的路徑下就可以)下, 這樣openfire就安裝完成了。

下面我們啟動openfire伺服器,並配置它。在F:\Program Files (x86)\Openfire\bin目錄下有一個電燈泡的openfire.exe文件,雙擊執行,啟動完成後可以看到

.點擊Launch Admin按鈕進入http://127.0.0.1:9090/setup/index.jsp頁面,配置openfire伺服器。

選擇簡體中文版——配置伺服器域名(一般都是本機自己的名稱,我的是txw-pc,其他不變)——資料庫設置(選擇Openfire自帶的)——管理員賬戶可以跳過——完成

登錄到Openfire管理控制台,初始用戶名admin,密碼admin.

伺服器名稱就是jwchat的連接地址;你可以使用Spark、jwchat鏈接這個地址進行IM通信聊天……

.測試,使用我下面下載的的一個源碼MyXmpp.zip測試。解壓導入Eclipse之後,將下圖中XmppTool.java中的IP地址改為你自己主機的IP地址就行

天互數據 為您解答,希望能幫到你

3. openfire怎麼不修改源碼加入消息回執

遵循原則:
1.message 消息的id由服務端或者客戶端統一生成,採用全球唯一id生成策略。
2.客戶端收到 message消息後必須回執服務端
3.取消openfire伺服器消息總是存儲的設置
4.設置openfire離線表ofoffline的messageId欄位為字元串類型
實現:
創建openfire組件類:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xmpp.component.Component;
import org.xmpp.component.ComponentException;
import org.xmpp.component.ComponentManager;
import org.xmpp.packet.JID;
import org.xmpp.packet.Message;
import org.xmpp.packet.Packet;

/**
* 處理 回執信息
*
* @author longyingan
*
*/
public class ReceiptComponent implements Component {
private static final Logger log = LoggerFactory.getLogger(ReceiptComponent.class);

private final static String name = "receiptComponent";

@Override
public String getDescription() {
return null;
}

@Override
public String getName() {
return name;
}

@Override
public void initialize(JID jid, ComponentManager componentManager)
throws ComponentException {

}

@Override
public void processPacket(Packet packet) {

if (packet instanceof Message) {
if (packet.getTo() != null
&& packet.getTo().getDomain()
.startsWith("receipt")) { // 群消息回執
Message message = (Message) packet.createCopy();
// 獲取消息 id 和 用戶
String messageId = message.getID();
String username = message.getFrom().getNode();
// 刪除離線消息
if (!StringUtils.isEmpty(messageId)){
//TODO 刪除openfire離線表的對應數據
}
}
}
}

@Override
public void shutdown() {

}

@Override
public void start() {

}

}

創建消息攔截類,把所有message消息存儲離線:

import java.util.Date;
import java.util.Random;
import java.util.UUID;

import org.apache.commons.lang.StringUtils;
import org.dom4j.Element;
import org.dom4j.QName;
import org.jivesoftware.openfire.XMPPServer;
import org.jivesoftware.openfire.interceptor.PacketInterceptor;
import org.jivesoftware.openfire.interceptor.PacketRejectedException;
import org.jivesoftware.openfire.session.Session;
import org.jivesoftware.util.XMPPDateTimeFormat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xmpp.packet.JID;
import org.xmpp.packet.Message;
import org.xmpp.packet.Packet;

/**
* 搜索引擎攔截器
* @author longyingan
*
*/
public class SearchEngineInterceptor implements PacketInterceptor {

private static final Logger log = LoggerFactory.getLogger(SearchEngineInterceptor.class);
Random m_rndGen = new Random();
@Override
public void interceptPacket(Packet packet, Session session,
boolean incoming, boolean processed) throws PacketRejectedException {

// 程序執行中;是否為結束或返回狀態(是否是當前session用戶發送消息)
if (processed || !incoming) {
return;
}

if (packet instanceof Message) {
if(packet.getTo()!=null
&& !XMPPServer.getInstance().getServerInfo().getXMPPDomain().equals(packet.getTo().getDomain())
||("receipt."+XMPPServer.getInstance().getServerInfo().getXMPPDomain()).equals(packet.getFrom().getDomain()))
return ;

//TODO 1.存儲消息到openfire 離線表
//TODO 2.如果message 沒有 id 則產生一個保持
//TODO 3.根據自己的業務判斷哪些需要存儲,哪些不需要

}
}

}

好,到這來服務端的兩個主要類代碼已經完成。下面寫個客戶端如何測試的例子(只是一個簡單事例,可能用的時候不是這樣的哈):

Chat chat = ChatManager.getInstanceFor(connection).createChat(
"xxx伺服器的域", new MessageListener() {
public void processMessage(Chat chat,Message message) {
System.out.println(message.toXML());
Message rep = new Message();
rep.setFrom(message.getTo());
rep.setTo("receipt." + message.getFrom());
rep.setPacketID(message.getPacketID());
rep.setBody("null");
rep.setType(Type.chat);
try {
connection.sendPacket(rep);
} catch (NotConnectedException e1) {
e1.printStackTrace();
}
}
});

4. im即時通訊源碼哪裡有呢想搭建一個即時通訊

即時通訊im源碼可以用即構科技的,即構科技提供即時通訊示例源碼,開發者通過IM SDK和API可快速開發IM功能,比自主開發節省90%時間和成本,支持發送文本、圖片、文件、自定義消息、呼叫邀請CallKit等消息類型,同時支持通過自定義消息定製業務特殊消息類型,讓您快速實現實時聊天場景消息收發。

5. openfire 淇鏀逛簡婧愮爜 鎬庝箞鎵撳寘

鐪嬩綘鍐欑殑鎻掍歡鎻愪緵浠涔堟湇鍔$殑鍟婏紝濡傛灉鏄痺eb service 鐩存帴鍙戦佽鋒眰灝卞彲浠ヤ簡銆
濡傛灉鏄闇瑕佹湁web鐣岄潰錛屽綋浣犻厤緗濂絰ml鏂囦歡錛屽啓濂絯eb欏甸潰錛岄氳繃web鐣岄潰鎿嶄綔灝卞彲浠ヤ簡鍚с傘

6. 把openfire源碼導入後出現錯誤 com.tangosol.ut ,找不到這個包

貌似遇到過,沒記錯的話 這個應該是在cluster 集群那個插件中的包。

openfire的集群需要依賴Oracle的coherence.jar、coherence-work.jar、tangosol.jar包,你可以在網上找找這幾個包,或者oracle的網站上應提供下載的,進行配置後,就不會出現lz說的情況了。

閱讀全文

與openfire伺服器源碼相關的資料

熱點內容
鴻蒙加密等級 瀏覽:802
cocos2dluapdf 瀏覽:491
假的加密鎖靠譜嗎 瀏覽:176
經營聖手伺服器怎麼調 瀏覽:749
arduino手機編程 瀏覽:481
西醫pdf下載 瀏覽:29
後浪電影學院pdf 瀏覽:813
程序員怎麼做到不被人嫉妒 瀏覽:669
cmd新建文件夾md命令 瀏覽:570
php數組中的數值排序 瀏覽:832
安卓手機怎麼避免小孩內購 瀏覽:171
聯想伺服器出現黃色嘆號怎麼辦 瀏覽:991
約翰編譯器製作教程 瀏覽:130
大地pdf 瀏覽:109
pdfplus 瀏覽:577
匯編O命令 瀏覽:970
plt轉pdf 瀏覽:366
魔獸60宏命令大全 瀏覽:480
php志願者網站源碼 瀏覽:875
貿易pdf 瀏覽:498