欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

ios環(huán)信即時(shí)通訊開(kāi)發(fā)的簡(jiǎn)單介紹

iOS 即時(shí)通訊(二):心跳保活

很多人認(rèn)為,TCP協(xié)議有KeepAlive機(jī)制,為何基于它的通訊鏈接仍然需要在應(yīng)用層實(shí)現(xiàn)額外的心跳保活呢?本文將從移動(dòng)端IM的角度告訴你,即使使用的是TCP協(xié)議,應(yīng)用層的心跳保活仍舊必不可少。

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供鎮(zhèn)遠(yuǎn)企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)H5建站、小程序制作等業(yè)務(wù)。10年已為鎮(zhèn)遠(yuǎn)眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。

在使用TCP長(zhǎng)連接的IM服務(wù)設(shè)計(jì)中,往往都會(huì)涉及到心跳。心跳一般是指客戶端每隔一定時(shí)間向服務(wù)端發(fā)送自定義指令,以判斷雙方是否存活,因其按照一定間隔發(fā)送,類似于心跳,故稱為心跳指令。

TCP是一個(gè)基于連接的協(xié)議,其連接狀態(tài)是由一個(gè)狀態(tài)機(jī)進(jìn)行維護(hù),連接完畢(三次握手)后,雙方都會(huì)處于established狀態(tài),這之后的狀態(tài)并不會(huì)主動(dòng)進(jìn)行變化。也就是說(shuō),即使上層不進(jìn)行任何調(diào)用,一直使TCP連接空閑,那么它仍然是保持連接的狀態(tài)。這個(gè)時(shí)候就需要一種機(jī)制來(lái)檢測(cè)TCP連接的狀態(tài),KeepAlive就是背負(fù)這個(gè)使命出現(xiàn)的。

那么問(wèn)題來(lái)了,KeepAlive是用來(lái)檢測(cè)TCP連接狀態(tài)的,那為什么還需要心跳呢?這里就需要考慮一種情況了,假如某臺(tái)服務(wù)器因?yàn)槟承┰驅(qū)е仑?fù)載超高,CPU100%,無(wú)法響應(yīng)任何業(yè)務(wù)需求,但是使用TCP探針仍舊能夠確定連接狀態(tài),這就是典型的連接活著但業(yè)務(wù)提供方已死的狀態(tài),對(duì)客戶端而言,這時(shí)最好的選擇就是斷線后重新連接其他服務(wù)器,而不是一直認(rèn)為當(dāng)前服務(wù)器是可用狀態(tài),一直向當(dāng)前服務(wù)器發(fā)送些必然后失敗的請(qǐng)求。

從上面我們可以知道,KeepAlive并不適合檢測(cè)雙方存活的場(chǎng)景,這種場(chǎng)景還得依賴于應(yīng)用層的心跳。應(yīng)用層的心跳有著更大的靈活性,可以控制檢測(cè)時(shí)機(jī)、間隔和處理流程,甚至可以在心跳包上附帶額外信息。從這個(gè)角度而言,應(yīng)用層的心跳的確是最佳實(shí)踐。

TCP KeepAlive用于檢測(cè)連接的死活,而心跳機(jī)制則附帶一個(gè)額外的功能:檢測(cè)通訊雙方的存活狀態(tài)。

從上面我們可以得出結(jié)論,目前而言,應(yīng)用層心跳的確是檢測(cè)連接有效性,雙方是否存活的最佳實(shí)踐,那么剩下的問(wèn)題就是怎么實(shí)現(xiàn)。

最簡(jiǎn)單粗暴的方法是定時(shí)心跳,如每隔30秒心跳一次,15秒內(nèi)沒(méi)有收到心跳包則認(rèn)為當(dāng)前連接已失效,斷開(kāi)連接并進(jìn)行重連。這種做法最直接,實(shí)現(xiàn)也簡(jiǎn)單。唯一的問(wèn)題就是耗電和耗流量。以一個(gè)協(xié)議包 5 個(gè)字節(jié)計(jì)算,一天收發(fā) 2880 個(gè)心跳包,一個(gè)月就是 5 x 2 x 2880 x 30 = 0.8 M 的流量,如果手機(jī)上多裝幾個(gè) IM 軟件,每個(gè)月光心跳就好幾兆流量沒(méi)了,更不用說(shuō)頻繁的心跳帶來(lái)的電量損耗。

既然頻繁心跳會(huì)帶來(lái)耗電和耗流量的弊端,改進(jìn)的方向自然就是減少心跳頻率,但也不能過(guò)于影響連接檢測(cè)的實(shí)時(shí)性。基于這個(gè)需求,一般可以將心跳間隔根據(jù)程序狀態(tài)進(jìn)行調(diào)整,當(dāng)程序在后臺(tái)時(shí)(這里主要指安卓),盡量拉長(zhǎng)心跳間隔,5分鐘、甚至10分鐘都可以。

而當(dāng)App在前臺(tái)時(shí)則按照原來(lái)規(guī)則操作。連接可靠性的判斷也可以放寬,避免一次心跳超時(shí)就認(rèn)為連接無(wú)效的情況,使用錯(cuò)誤積累,只在心跳超時(shí)n次后才判定當(dāng)前連接不可用。

iOS 環(huán)信怎么獲取消息列表的 我看文檔沒(méi)看懂 哎

沒(méi)用過(guò)環(huán)信,用的是容能云,云通訊PaaS服務(wù)平臺(tái)。

服務(wù)功能涵蓋:IM即時(shí)通訊、實(shí)時(shí)音視頻、短信服務(wù)、企業(yè)通訊+辦公、流量服務(wù)、紅包服務(wù)、營(yíng)銷活動(dòng)、用戶托管、反垃圾、大數(shù)據(jù)分析、云服務(wù)器、內(nèi)容分發(fā)網(wǎng)絡(luò)CDN、內(nèi)容分發(fā)網(wǎng)絡(luò)CDN、云數(shù)據(jù)庫(kù)RDS等等。

開(kāi)發(fā)文檔和接口接入調(diào)試感覺(jué)還是比較簡(jiǎn)單快速的!

我想給APP加個(gè)IM功能,如何實(shí)現(xiàn)?

環(huán)信的即時(shí)通訊云最適合你的,Android、iOS、Web三大平臺(tái)都支持。實(shí)現(xiàn)極其簡(jiǎn)單,只需要3步。

第一步:在環(huán)信官網(wǎng)注冊(cè)獲得使用碼。

第二步:在環(huán)信官網(wǎng)下載SDK集成,加幾行代碼到App中,調(diào)試并修改UI等配置。

第三步:將擁有IM功能的App上線,就ok了! 加入IM就是這么簡(jiǎn)單。

環(huán)信 im ios 用什么語(yǔ)言寫(xiě)的

環(huán)信的聊天功能是獨(dú)立出來(lái)的,開(kāi)發(fā)者可以直接集成環(huán)信的聊天UI ,集成之后可以直接使用它的所有功能,語(yǔ)音,,表情,共享位置等,快的3天能集成,慢的一個(gè)星期左右

iOS即時(shí)通訊SDK中,騰訊,網(wǎng)易,環(huán)信,融云IM SDK對(duì)比,哪個(gè)更好

都差不多,業(yè)內(nèi)認(rèn)可的基本上融云,環(huán)信這些。真正做起來(lái)的目前只有融云了。

網(wǎng)站題目:ios環(huán)信即時(shí)通訊開(kāi)發(fā)的簡(jiǎn)單介紹
URL標(biāo)題:http://chinadenli.net/article44/dsehdee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈做網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)公司靜態(tài)網(wǎng)站品牌網(wǎng)站設(shè)計(jì)ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)