Helo,我正在開發一款手機遊戲,需要從客戶端到服務器的實時通信。基於二進制的xmpp服務器?
通常我會實現一個TCP套接字服務器,並使用一些私有二進制協議來啓用雙向通信,現在我也正在尋找像基於標準的Ejabberd這樣的XMPP服務器。但是XML在某種程度上真的是冗餘且效率低下,尤其是對於移動應用程序來說,這可能意味着更多的流量和內存消耗。
- XMPP是否必須使用XML?
- 是否有任何使用二進制作爲低級數據格式而不是使用XML的XMPP實現? (或者我不應該選擇XMPP並從其他標準或技術開始。)
- 任何使用XMPP減少發送複雜數據對象(不是大文件對象)開銷的策略?
不確定你要求什麼......任何XMPP將使用XML - 否則它不是XMPP。編輯:顯然是有一個(笑話)二進制XMPP協議:http://xmpp.org/extensions/xep-0239.html – Turch 2013-03-01 17:00:32
對不起,我不清楚,我更新了這個問題。協議設計者似乎認爲這不是使用XML的問題。在我看來,即使JSON可以比XML節省大量的冗餘流量。基於一些搜索谷歌談話API也採用二進制格式,如果我沒有錯。 – 2013-03-01 17:23:42
當然使用二進制協議有它的優點。但它也有一些主要的缺點可以通過XMPP解決。在大多數使用情況下,基於XML的協議的開銷是可以忽略的。當你不需要它們時,不要試圖優化它們。以二進制形式實現像XMPP這樣的全功能聊天協議並不是一項簡單的任務。這就是爲什麼在開源世界中不存在這樣的事情。通過流壓縮,「上限」和進一步優化以及XEP,即使在資源受限的環境中,XMPP也可以非常有效。 – Flow 2013-03-02 12:24:12