有沒有人編寫過使用WebSockets的開源XMPP庫,並且是爲了讓瀏覽器運行?是否有開源的WebSockets(JavaScript)XMPP庫?
回答
對於服務器可以實現的WebSockets,我們還沒有XMPP的標準,在客戶端得到充分解決之前,這是必需的。
第一步是完成WebSocket標準化。看起來這可能發生在IETF HyBi工作組,該工作組在撰寫本文時尚未得到IESG的批准。幾星期前在廣島IETF會議上有一隻HyBi Birds-a-Feather(BoF)(參見meeting materials),效果非常好。
在WebSockets有一個穩定的引用並且似乎正在穩定下來之後,XSF將創建一個XEP,它將XMPP綁定到WebSockets,推測是每個WebSocket框架都有一個節。
編輯:Jack Moffitt已經寫了一個IETF Internet-Draft第一次通過協議可以使用。 警告。這仍然可能發生巨大變化。只有在你願意在以後徹底撕掉時才實施它。 警告。
有一本書即將覆蓋這個話題...
Professional XMPP with JavaScript and jQuery alt text http://ecx.images-amazon.com/images/I/51B7VAHw8OL._SL500_AA240_.jpg
但我假設你不想等待的書。所以看手錶the Jack Moffitt's presentation from JSConf。我今天早上看了。 (Jack Moffitt是上面鏈接的書的作者。)
涉及的庫(JavaScript和C實現)是Strophe。
這是一個非常富有成效的探索領域,但非常原始。我們很快就會看到。 WebSockets帶有HTML5,是嗎?
確實,WebSockets是HTML5的一部分;谷歌瀏覽器已經實現了它們 – 2009-12-05 02:16:06
有多種解決方案(它們都不是完美的)
1.使用Kaazing。
他們已經支持它。它是開源的,但他們有某種dual license,所以更好地檢查你是否可以用於你的項目。
2.結合js.io和APE(阿賈克斯推進引擎)
APE是一種彗星框架,但他們最近開始支持WebSockets的。 在他們的網站(「APE as proxy」部分)中,他們說它可以運行包含xmpp.js的js.io庫,因此可以將它們結合起來使用。
3。使用的Caucho
這是一個類似APE基於Java的框架,它提供一站式彗星的解決方案,他們似乎支持XMPP和WebSockets的
4 。請Strophe團隊支持WebSocket。
Strophe在BOSH上執行XMPP(基於同步HTTP的雙向流),但也有a discussion about supporting WebSockets。我們需要提供更強有力的推理,說明他們爲什麼需要通過BOSH支持WebSocket。爲什麼他們需要通過BOSH支持WebSocket?如果你有很好的答案,請加入。
我剛試過xmpp,bosh,strophe echobot example,效果很好。您可能也想試試看它是否符合您的要求。
對於#2和#3,他們說他們都支持xmpp和websockets,但不知道他們是否一起工作。
什麼樣的應用程序,您正在考慮使用XMPP & WebSockets?
以下是有關替代方案的建議。
- 如果你想存在,聊天,聊天室等效的功能,你可以讓Google Wave小工具或機器人,然後暴露於使用Wave Embed API外(死鏈接,保存歷史的目的)。 Wave實際上是建立在XMPP之上的。
- 如果您只是在尋找非常低延遲的消息傳遞功能,那麼您可以使用。
- 如果你正在尋找更簡單的消息流,你可以只pipe in/out unix file as I demonstrated here。
我得到了最上面時,我寫this blog post的信息。 如果您不時查看評論部分,我會在找到其他解決方案後發佈更新。
>你在考慮使用XMPP和WebSockets進行什麼樣的應用? 我並不一定有任何具體的想法;一般來說,基於WebSockets的XMPP將爲真實的基於事件的Web應用程序提供框架和協議,從而大大改善用戶體驗。: *基於Web的電子郵件 *基於Web的協作 *實時數據同步 *實時更新 *瀏覽器到瀏覽器通信 這兩種技術的結合,以及功能強大的客戶端JavaScript引擎,似乎開闢了許多可能與現代網絡應用程序。 – 2010-01-11 11:10:42
Strophe現在支持websockets。我可以選擇使用websocket或BOSH進行連接。 – Robin 2015-01-26 14:59:10
我不知道你爲什麼專門針對WebSocket的解決方案要求,因爲XMPP服務器必須支持這個第一。
然而,有幾個可用的XMPP JavaScript庫(據我看到他們都使用BOSH法):
這些實施例是從其中列出了XMPP協議的開放源碼實現的XMPP Website服用。
鏈接通常不被接受爲答案。以您自己的語言形式針對問題制定答案,並將該鏈接用作參考。編輯後提及我,所以我可以刪除我的downvote。 – markus 2011-11-30 16:38:21
@markus:謝謝你的評論。我確定了答案。 – MKroehnert 2011-12-03 16:52:45
問題是特別要求支持WebSockets而不是BOSH的JavaScript XMPP庫。 – 2012-08-15 02:56:36
我不確定瀏覽器端的JS可以單獨處理websocket協議,因爲它主要依賴於瀏覽器API。很少有瀏覽器支持websocket:Chrome,Safari5,也許Firefox4。有許多基於flash/as3的解決方法(然後你的js與flash代碼進行通信),主要限制是flash不支持安全連接(太糟糕了)。
BWT,你可以檢查this websocket implem他們提供開源的Java websocket客戶端lib,似乎處理xmpp的東西,如果你瀏覽倉庫,你可能會發現基本的as3 websocket實現。
JSJaC implements XMPP Over Websockets。據瞭解幾個後端的實現工作:
- 節點XMPP協議 - 波什 支持RFC6455和0.6.1以來,沒有任何問題的作品,它也 透明地使用STARTTLS如果有必要
- WXG - 支持RFC6455和工作 沒有問題,但無法連接到需要 STARTTLS(原始wxg有一些 問題,由Gordin修復)的服務器。
- ejabberd-的WebSockets - 不 支持RFC6455因此它不工作,適應它支持 RFC6455應該是很容易對任何人知道二郎(一些工作 正在進行,也可以在GitHub上找到)
- 的Openfire - 非官方插件是可用的,但它缺乏對RFC6455支持 因此它不工作
- 阿帕奇Vysper - 不 不支持RFC6455因此不起作用
- Tigase - 上的WebSocket 支持 沒有已知的工作
- MongooseIM - ejabberd 的分支,通過Websockets支持XMPP。
- 1. 是否有開源的聊天庫使用websockets
- 2. PubNub是否使用WebSockets和/或XMPP?
- 3. 是否有SQL代碼的開源庫?
- 4. 是否有任何可視化會話的開源JavaScript庫?
- 5. 支持BOSH的開源XMPP庫
- 6. FORTRAN是否有任何開源ODBC庫?
- 7. Android中是否有開源手勢庫?
- 8. 開源XMPP實現?
- 9. 打開websockets是否使用帶寬或其他資源?
- 10. Dart是否有XMPP API?
- 11. 是否有HTML5 WebSockets的Java-applet實現?
- 12. 是否有一個用於Qt的WebSockets?
- 13. 是否有任何用Javascript編寫的開源JSDoc解析器?
- 14. 是否有R2RML的Java開源實現?
- 15. 是否有開源的Airline Seat Map API?
- 16. 是否有可用於Twitter的開源庫?
- 17. 是否有任何可用於搜索Deep Web的開源庫?
- 18. 是否有用於解析Excel 2007文件的Java開源庫?
- 19. 是否有用於Polyline簡化的開源Java庫?
- 20. 是否有任何使用graphviz C++庫的開源項目?
- 21. 是否有一個開源的「MSWord文檔到PDF」轉換庫
- 22. 是否有任何開源離羣礦工的數據庫
- 23. 是否有任何用於.NET的非GPL開源PGP庫
- 24. 是否有開源的SQL Server數據庫比較工具?
- 25. 是否有一個與date.js庫等價的開源.NET?
- 26. 是否有開源的netflow收藏家C++庫集?
- 27. JavaScript:是否有utils庫?
- 28. 是否有Javascript ONC RPC庫
- 29. IM的開源XMPP服務器
- 30. WebRTC和Websockets。是否有區別
現在有Strophe:http://strophe.im/strophejs/ – alexk 2014-06-23 23:32:12