iOS及時通信開發的總結

近期主要是在搞iOS的即時通信的開發,第一個及時聊天版本已經上線了。前期曾考慮過聊天類的SDK,由於考慮到深度的定製而且與業務的需求高度相關,但最後選擇了本身實現整套聊天的過程。html

前端使用的是SocketRocket、如以前的文章有所敘述。文章連接
後端使用的是WorkerMan前端

前端iOS涉及到問題主要有:git

1.斷網弱網網絡切換等狀況的斷線重連處理。
2.消息與服務器的同步,不能出現消息遺漏、丟失的狀況。
3.消息的接收,分發,通知。
4.消息多種樣式Cell的展現。(UITableView的使用。)
5.內容輸入變換。
6.多設備同時登陸的消息同步,(A設備發送消息,B設備也要同步顯示這條發送的消息)。
7.已讀未讀的標識、消息發送失敗的標識、消息發送失敗的重發操做等。
8.如何確保消息發送到服務器的消息發送成功?(服務器收到消息的回執操做)。
9.消息如何保證惟一性,好比先後兩條消息內容同樣,如何區分?(消息增長惟一標識)
如此等等。。。github

後期主要是對聊天這一塊的內存釋放進行優化,確保聊天主界面的內存釋放,避免內存的大量消耗。
這方面主要是藉助蘋果公司的Instruments工具和MLeaksFinder這個庫。後端

避免耗時的操做,好比建立大量的對象。優化用戶體驗,對聊天界面的數據展現,大量計算的優化,包括文字高度的計算,圖片的繪製,layer的處理等。
針對這方面的優化,經過主觀常見的耗時操做,TIK、TOK代碼的執行時間查看,以及App運行FPS的查看(YYFPSLabel),定位具體的耗時頁面引發的界面卡頓。避免將耗時卡住主線程的操做放在主線程中。服務器

相關文章
相關標籤/搜索