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

openfire伺服器源碼下載

發布時間:2022-05-31 07:51:29

『壹』 GitHub上面有哪些經典的java框架源碼

『貳』 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地址就行

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

『叄』 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();
}
}
});

『肆』 如何在Linux下安裝openfire及解決一些常見的安裝問題

1、首先下載OpenFire的Linux安裝包
2、將下載的安裝包復制到linux伺服器的/opt目錄下
3、啟動openfire
安裝完成後,進入/opt/openfire/bin目錄。
如果你是用rpm進行安裝的,執行./openfire.sh,
如果你使用tar進行安裝的,執行./openfire start。
4、打開瀏覽器,http://[伺服器ip地址]:9090/,進入配置頁面
(1)首先選擇語言,當然是中文
(2)其次配置域ip和控制台埠,埠默認是9090
(3)然後選擇資料庫連接
i.「嵌入的資料庫」就是使用OpenFire自帶資料庫;
ii. 「標准資料庫連接」是連接外部資料庫,我是連接外部Mysql資料庫
(4)進入「標准數據連接」配置頁面,配置Oracle連接;配置後會在外部資料庫中創建表和欄位;
(5)進入用戶和組配置界面,
i. 「初始配置」既在資料庫中保存用戶和用戶組資料
ii.「目錄伺服器(LDAP)」就是使用外部LDAP伺服器來管理
(6)進入管理員密碼配置界面,修改管理員密碼
注意:登錄的時候,用戶名是admin,不是設置的郵箱。
5、常見問題及解決方案
(1)啟動openfire時,出現下面的錯誤提示:
./openfire.sh: /opt/openfire/jre/bin/java: /lib/ld-linux.so.2: bad ELF inter
這個錯誤是系統版本造成的,系統是64位的,而安裝包是32位的。

『伍』 為什麼openfire與spark連接不上

5.2前提條件 1.以下配置過程全部在root許可權下配置,請切換到root許可權下操作。 2.下載的源碼包是不帶java環境的,需要自行安裝java環境,需要的java環境必須是java5以上版本,可以使用(aot-get install sun-java5-jdk)命令來安裝

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

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

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

『柒』 怎麼學習openfire源代碼

首先看一下它的啟動腳本,啟動腳本中最後運行的類是org.jivesoftware.openfire.starter.ServerStarter。這個類的最最重要的作用是創建org.jivesoftware.openfire.XMPPServer的實例。

org.jivesoftware.openfire.XMPPServer這個類是一個關鍵的類,它完成了讀取配置文件(app_home/conf/openfire.xml),啟動相應模塊,裝載plugin的功能。

但是openfire的package和class實在是太多了,不知道從何處下手。後來從網上的資料得知,openfire在底層使用了apache
mina做通訊庫。於是研究了一下apache mina。

發現網路文庫是個好東東,裡面有一些有價值的介紹apache mina的文章。推薦兩篇文章:

Apache Mina入門 http://wenku..com/view/5454ed630b1c59eef8c7b47c.html

Apache Mina Server2.0中文參考手冊 http://wenku..com/view/2cd0cdd376eeaeaad1f33028.html

『捌』 openfire伺服器端是否保存聊天記錄

不保存的,openfire只保存離線的消息,例如用戶不線 你發送消息後會保存,如果正常發送的消息根本沒有保存,可以自己修改源碼或者寫插件

『玖』 如何發布二次開發後的openfire源碼到linux伺服器中

exe和rpm形式的安裝包,分別是windows和linux下帶JRE的安裝文件,此種打包方式目前還沒搞定。 目前不帶JRE的包,比如linux下的tar.gz,內容其實就是執行ant編譯後,生成的target目錄下的openfire. 此目錄在windows和linux下均可正常運行。

閱讀全文

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

熱點內容
畢業設計單片機模擬 瀏覽:835
阿里ai雲伺服器 瀏覽:433
小程序雲伺服器可以綁個人賬戶嗎 瀏覽:727
王者榮耀體驗服ios怎麼登陸安卓的 瀏覽:285
客戶想要的與程序員理解的 瀏覽:669
矽谷一普通程序員的一天 瀏覽:456
演算法實現兩個集合合並 瀏覽:74
班長命令什麼意思 瀏覽:139
51單片機c語音 瀏覽:733
悅翔v3壓縮比 瀏覽:714
oppo怎樣修改手機里的文件夾名稱 瀏覽:218
PHP圖片上傳替換 瀏覽:139
androidtv桌面 瀏覽:810
miui10版本怎麼隱藏app 瀏覽:52
阿里雲伺服器怎麼輸入命令 瀏覽:426
如何通過伺服器連接網路 瀏覽:664
一張大事年表pdf 瀏覽:396
雞兔同籠java編程 瀏覽:611
應屆生php程序員簡歷 瀏覽:652
格力三匹壓縮機電流測哪根線 瀏覽:77