Openfire的通信處理基于Apache MINA框架實現。Apache MINA是一個網絡應用程序框架,用來幫助用戶簡單地開發高性能和高可靠性的網絡應用程序。它提供了一個通過Java NIO在不同的傳輸例如TCP/IP和UDP/IP上抽象的事件驅動的異步API。
Openfire使用與插件開發
Openfire For Linux 集群正確配置
Openfire是基于jabber服務器架構的即時通訊軟件服務器端。開源,支持XMPP協議,因此,可以作為通用的XMPP客戶端的服務器端。注意,安裝Openfire之前需要安裝的一些前置軟件,它們是jdk、MySQL、apacheAnt,有了以上的東西的支持就可以搭建openfire了。
XMPP Extensible Messagingand Presence Protocol,簡單的來講,它就是一個發送接收處理消息的協議,但是這個協議發送的消息,既不是二進制的東東也不是字符串,而是XML。正是因為使用了XML作為消息傳遞的中介,Extensible才談的上,不是么?IM Instant Messenger,及時通信軟件,就是大家使用的QQ、MSNMessenger和Gtalk等等。其中Gtalk就是基于XMPP協議的一個實現,其他的則不是。當前IM幾乎作為每個上網者必然使用的工具,在國外的大型企業中有一些企業級的IM應用,但是其商業價值還沒完全發揮出來。設想既然XMPP協議是一個公開的協議,那么每個企業都可以利用它來開發適合本身企業工作,提高自身生產效率的IM。
Java領域的IM解決方案Java領域的即時通信的解決方案可以考慮openfire+spark+smack。當然也有其他的選擇。Openfire是基于Jabber協議(XMPP)實現的即時通信服務器端版本,目前建議使用3.6.4版本,這個版本是當前最新的版本,而且網上可以找到下載的源代碼。即時通信客戶端可使用spark2.5.8,這個版本是目前最新的release版本,經過測試發現上一版本在視頻支持,msn網關支持上可能有問題,所以選擇openfire3.6.4+spark2.5.8是最合適的選擇。Smack是即時通信客戶端編程庫,目前我已測通通過jsp使用smack的API向openfire注冊用戶發送消息,并且可以通過監聽器獲得此用戶的應答消息。通過smack向msn用戶和QQ用戶,gtalk用戶發送消息應該也可以實現,關于向gtalk用戶發送消息的例子較多。這個留待以后研究。至少目前可以通過程序向spark發消息了。對于局域網內部應用足以解決系統與用戶交互的問題,甚至可以做自動應答機器人。Spark支持聊天,語音,視頻,會議,文件收發,截屏,連接msn等功能。