2009-07-09 67 views

回答

2

這是一個很難回答的問題,因爲我懷疑有很多開發人員參與跨多個XMPP項目和語言的開發。

我可以拋出一些個人的看法,但是......我可能不在基地!

你真正需要的是哪個libraries將被推薦用於組件開發。所有的服務器都支持組件協議,所以你真正需要的是一個到服務器的套接字連接,以及一些幫助程序例程,以便使消息解析等重複的事情變得更加容易。

服務器可能很重要的地方在於您是否需要更緊密的集成。

例如,如果您希望組件的縮放方式與Ejabberd相同,那麼您可能會想要使用exmpp

如果您需要將您的組件與Openfire一起部署到僅限Java的企業,那麼您可能需要使用smack

如果您熟悉Python並且想快速使用原型,請使用Wokkel

我不認爲文檔對於任何圖書館來說都會很棒(雖然沒有看過它們),但這不應該是一個巨大的負擔。你真的需要一個good book關於XMPP協議是如何工作的,然後從庫中獲得一些示例代碼,並且從那裏開始相當容易。

+0

好的,經過一番研究,我明白組件的語言不需要與服務器的語言相同,因爲它們通過TCP(不是某種共享庫)進行交互。但是,仍然有一些框架可以幫助開發這些組件。例如,你建議使用smack,但是這個線程(http://www.igniterealtime。org/community/thread/9027)給我留下了一些疑惑。 – alves 2009-07-10 20:16:11

1

對於易於使用的測試服務器,我喜歡openfire。良好的說明,易於掛鉤的組件,以及良好的管理界面。調試更像是日誌文件中的「tail -f」,稍微是java-ish。

我專業地使用XCP,但這真的是商業用途。它運作良好,但如果這不是您的目標部署,則不值得付出努力。我不確定你是否可以再分開購買。

我試過用ejabberd,我放棄了。我發現安裝和管理的文檔很糟糕。配置文件不是自我描述的,在ejabberd網站上沒有很好的介紹。它可能在早上甚至可以把我的雞蛋炒早餐,但是我分配給它的時間無法通過安裝。

1

對於Openfire,有一種叫做Whack的東西,它是用於創建服務器組件(XEP-0114)的Java庫。

由於通信是通過套接字,我認爲相同的代碼應該適用於任何精心設計的XMPP服務器(如ejabberd)。不過,我只用Openfire進行過測試,效果很好。