說明
近期炊汤,自己在搭建openfire服務(wù)器正驻,利用xmpp實(shí)現(xiàn)即時(shí)通訊,搭建的過程和代碼抢腐,百度一下姑曙,一大推,今天單單說說其中遇到的問題迈倍。
那些坑
-
離線消息的服務(wù)器反彈
在向好友發(fā)送離線消息的時(shí)候伤靠,如果發(fā)送的離線消息的總量超出open Fire的離線消息存儲量時(shí),(默認(rèn)情況下啼染,open Fire設(shè)置的離線消息總量為100k)宴合,會發(fā)送反彈(所謂的反彈,就是你發(fā)送的消息迹鹅,服務(wù)器由轉(zhuǎn)發(fā)給你卦洽,而不是轉(zhuǎn)發(fā)給好友)。
解決辦法:我們可以在open Fire的管理控制臺設(shè)置
在上面的圖片中斜棚,我們可以設(shè)置單個(gè)離線消息的存儲總量阀蒂,也可以設(shè)置超出總量的處理策略。
- 發(fā)送語音的處理
蘋果錄音默認(rèn)是caf格式的弟蚀,但是這種格式蚤霞,安卓端是無法播放的,并且這種格式的錄音文件也比較大义钉,建議轉(zhuǎn)換成amr格式昧绣。 - 圖片、視頻捶闸、附件等資源的發(fā)送
圖片夜畴、視頻拖刃、文件、都是比較大贪绘,首先要進(jìn)行壓縮序调,其次,就是將這些資源發(fā)送到我們自己的服務(wù)器上兔簇,而不是放在open Fire的服務(wù)器上,我們發(fā)送的只不過是資源文件的URL而已硬耍,這樣垄琐,大大緩解了open Fire的壓力。 - 關(guān)于視頻聊天和語音聊天
XMPP 的擴(kuò)展協(xié)議 Jingle 使得其支持語音和視頻经柴,目前 iOS 尚不支持狸窘。那么,怎么解決呢坯认,建議使用webRTC.