android開發即時通訊
A. 如何寫一個即時通訊軟體
網易雲信致力於互聯網路技術的開發與研究,使開發者通過簡單集成客戶端SDK和雲端開放API,快速實現強大的移動互聯網IM和音視頻功能。在場景化方面,深入各行各業,狠抓痛點,第一時間包裝相應的場景方案,助力企業解決行業難題。同時,網易雲信...
2020-03-09回答者:網易(杭州)網路有...10
如何編寫一個即時通訊軟體
答:可以用bmob做後端,有即時通訊的demo 昨天下班前發布了最新的Bmob_IM_V1.1.2版本的SDK和應用Demo,還未正式通知大家,但還是有人察覺到了,那麼,這一次版本更新了什麼呢? 主要是針對大家都比較關心的問題進行了集中解決。 一、更新功能: 1、...
2016-12-21回答者:C9006122個回答1
如何搭建一個自己的IM即時通訊聊天軟體?
問:如何搭建一個自己的IM即時通訊聊天軟體?
答:搭建一個自己的IM即時通訊聊天軟體的框架如下:1、CIM 中的各個組件均採用 Spring Boot 構建。2、採用 Netty + Google Protocol Buffer 構建底層通信。3、Redis 存放各個客戶端的路由信息、賬號信息、在線狀態等。4、Zookeeper 用於 IM-server ...
2018-09-03回答者:容聯雲5個回答1
怎麼用java寫一個即時通訊軟體?
答:我看到過一個,鏈接給你,用websocket的 https://github.com/TooTallNate/Java-WebSocket 裡面有個example就是im的
2013-05-24回答者:micoud_104個回答1
寫一個簡單的即時通訊軟體需要掌握哪些基礎的網路知識
答:掌握TCP/UDP網路協議,還要知道Socket知識,會java或者C#或者c語言的編程,這樣就可以通過語言來實現網路的通訊。建議看看Openfire,採用的協議是XMPP。
2017-02-16回答者:天1234569411個回答
請問可以用哪些語言編寫即時通訊軟體?
問:並請說明那種語言最好
答:當然要用JAVA和C++等多程序開發. 你可以看這家企業即時通訊軟體www.kehutone.com
2007-03-14回答者:138138577983個回答
我要用java寫一個簡單的即時通訊軟體,該怎麼寫。...
問:我們打算先用http實現信息收發,有人會做嗎。有demo的話求發我感謝。
答:你是說電腦端手機端都要開發嗎,電腦端一般用socket, Android端用XMPP5通信
2015-03-10回答者:淪落人19921個回答
自己寫的小型的即時通訊軟體如何像QQ一樣實現聊天...
答:用socket或者serversocket,也可以使用數據包。必須要有這個,就可以在不同的計算機上實現即時通訊,但是,其功能與專業的聊天軟體差別比較大
2010-11-08回答者:孫74213個回答5
求大神幫寫用JAVA編寫一個即時通信的軟體有常 謝謝了
問:會的留言 可商量後再寫
答:描述得太不夠具體,,,,,是單對單、還是可以單對多;要不要分群;要不要圖片;等
2020-06-17回答者:知道網友2個回答1
開發一個即時通訊軟體需要什麼樣的人員?
問:開發一個即時通訊軟體需要什麼樣的人員?比如說需要幾個程序員,多少平面...
答:要看規模,不知道你要做多大的 架構師 起碼1個,如果大的話要兩個 資料庫設計 人員 美工1-2個 程序員依大小而定,小的話3,4個 大的話就每准了 如果作為產品的話,時間將會很長,自己玩,自己用的話,就很快了
B. 開發android即時通訊,需要學習什麼
Android系統是基於linux為核心的,而linux是用c語言和少量匯編語言寫成的,如果你想研究android,就去學c語言吧。
C. IM即時通訊開發如何實現Android版智能心跳機制
IM即時通訊開發如何實現Android版智能心跳機制。
大體思路
a)延遲心跳測試法:這是測試結果准確的前提保障,我們認為長連接建立後連續三次成功的短心跳就可以很大程度的保證下一次心跳環境是正常的。
b)成功一次認定,失敗連續累積認定:成功是絕對的,連續失敗多次才可能是失敗。
c)臨界值避免:我們使用比計算出的心跳稍微小一點的值做為穩定心跳避免臨界值。
d)動態調整:即使在一次完整的智能心跳計算過程中,我們沒有找到最好的值,我們還有機會來進行校正。
方案需考慮到影響連接壽命的思素
在Android下,不管是GCM,還是微信,都是通過TCP長連接來進行消息收發的,TCP長連接存活,消息收發就及時,所以要對影響TCP連接壽命的因素進行研究。
1、NAT超時
大部分移動無線網路運營商都在鏈路一段時間沒有數據通訊時,會淘汰 NAT 表中的對應項,造成鏈路中斷(NAT超時的更多描述見附錄9.1)。NAT超時是影響TCP連接壽命的一個重要因素(尤其是國內),所以客戶端自動測算NAT超時時間,來動態調整心跳間隔,是一個重要的優化點。
2、DHCP的租期 (lease time)
目前測試發現安卓系統對DHCP的處理有Bug,DHCP租期到了不會主動續約並且會繼續使用過期IP,這個問題會造成TCP長連接偶然的斷連。(租期問題的具體描述見附錄9.2)。
3、網路狀態變化
手機網路和WIFI網路切換、網路斷開和連上等情況有網路狀態的變化,也會使長連接變為無效連接,需要監聽響應的網路狀態變化事件,重新建立Push長連接。
心跳范圍選擇
1、前後台區分處理:
為了保證微信收消息及時性的體驗,當微信處於前台活躍狀態時,使用固定心跳。微信進入後台(或者前台關屏)時,先用幾次最小心跳維持長鏈接。然後進入後台自適應心跳計算。這樣做的目的是盡量選擇用戶不活躍的時間段,來減少心跳計算可能產生的消息不及時收取影響。
2、後台自適應心跳選擇區間:
可根據自身產品的特點選擇合適的心跳范圍。
自適應心跳演算法量化描述
因為每個網路的NAT時間可能不一致。所以需要區分計算,數據網路按subType做關鍵字,WIFI按WIFI名做關鍵字。對穩定的網路,因為NAT老化時間的存在,在自適應計算態的時候,暫設計以下步驟在當前心跳區間逼近出最大可用的心跳。 即時通訊聊天軟體app開發可以加蔚可雲的v:weikeyun24咨詢
a)變數說明:
[MinHeart,MaxHeart]——心跳可選區間。
successHeart——當前成功心跳,初始為MinHeart
curHeart——當前心跳初始值為successHeart
heartStep——心跳增加步長
successStep——穩定期後的探測步長
經過該流程,會找到必然使心跳失敗的curHeart(或者MaxHeart),為了保險起見,我們選擇比前一個成功值稍微小一點的值作為後台穩定期的心跳間隔。
影響手機網路測試的因素太多,為了盡量保證測試結果的可靠性,我們使用延遲心跳測試法。在我們重新建立TCP連接後,先使用 短心跳連續成功三次,我們才認為網路相對穩定,可以使用curHeart進行一次心跳測試。圖4-2顯示了一次有效心跳測試過程。圖4-3顯示了在沒有達到穩定網路環境時,我們會一直使用固定短心跳直到滿足三次連續短心跳成功。
使用延遲心跳測試的好處是,可以剔除偶然失敗,和網路變化較大的情況(如地鐵),使測試結果相對可靠(五次延遲測試確定結論)。同時在網路波動較大的情況,使用短心跳,保證收取消息相對及時。
c)運行時的動態調整策略(已經按測算心跳穩定值後)
NAT超時值算出來後,在維持心跳的過程中的策略。
- 無網路、網路時好時壞、偶然失敗、NAT超時變小:
在後台穩定期發生心跳發生失敗後,我們使用延遲心跳測試法測試五次。如果有一次成功,則保持當前心跳值不變;如果五次測試全失敗,重新計算合理心跳值。該過程如圖4-4所示,有一點需要注意,每個新建的長連接需要先用短心跳成功維持3次後才用successHeart進行心跳。
NAT超時變大:
以周為周期,每周三將後台穩定態調至自適應計算態,使用心跳延遲法往後探測心跳間隔。
- successHeart是NAT超時臨界值:
因為我們現在選擇的是一個比successHeart稍小的值作為穩定值,所以在計算過程中可以避開臨界值。當運營商在我們後台穩定期將NAT超時調整為我們當前計算值,那麼由於我們每周會去向下探索,所以下一周探測時也可以及時調整正確。
d)冗餘Sync和心跳
在用戶的一些主動操作以及聯網狀態改變時,增加冗餘Sync和心跳,確保及時收到消息。
1、當用戶點亮屏幕的時候,做一次心跳。
2、當微信切換到前台時,做一次Sync。
3、聯網時重建信令TCP,做一次Sync。
可能存在的風險及預防措施
DHCP租期因素:
1、問題:根據目前的測試結果顯示,安卓不續約到期的IP Bug,會導致TCP連接在不確定的時間點失效,從而會導致一次心跳失敗。
2、預防:統計後台穩定期的心跳成功率,上報給後台。後台可以按地區分網路監控這個指標的波動,並且後台可以根據不同的波動,動態調整某區域特定網路下可選的心跳區間。
NAT超時介紹
因為 IP v4 的 IP 量有限,運營商分配給手機終端的 IP 是運營商內網的 IP,手機要連接 Internet,就需要通過運營商的網關做一個網路地址轉換(Network Address Translation,NAT)。簡單的說運營商的網關需要維護一個外網 IP、埠到內網 IP、埠的對應關系,以確保內網的手機可以跟 Internet 的伺服器通訊。
D. android 即時通信。。如何實現
Android現在即時通訊(或者消息推送)有好幾個開源項目框架可以實現,可以使用XMPP來實現即時通信。
XMPP(Extensible Messageing and Presence Protocol:可擴展消息與存在協議)是目前主流的四種IM(IM:instant messaging,即時消息)協議之一,其他三種分別為:即時信息和空間協議(IMPP)、空間和即時信息協議(PRIM)、針對即時通訊和空間平衡擴充的進程開始協議SIP(SIMPLE)。
1. XMPP的前身是Jabber,一個開源形式組織產生的網路即時通信協議。XMPP目前被IETF國際標准組織完成了標准化工作。標准化的核心結果分為兩部分; 核心的XML流傳輸協議 基於XML流傳輸的即時通訊擴展應用 XMPP的核心XML流傳輸協議的定義使得XMPP能夠在一個比以往網路通信協議更規范的平台上。藉助於XML易於解析和閱讀的特性,使得XMPP的協議能夠非常漂亮。 XMPP的即時通訊擴展應用部分是根據IETF在這之前對即時通訊的一個抽象定義的,與其他業已得到廣泛使用的即時通訊協議,諸如AIM,QQ等有功能完整,完善等先進性。
2.XMPP中定義了三個角色,客戶端,伺服器,網關。通信能夠在這三者的任意兩個之間雙向發生。伺服器同時承擔了客戶端信息記錄,連接管理和信息的路由功能。網關承擔著與異構即時通信系統的互聯互通,異構系統可以包括SMS(簡訊),MSN,ICQ等。基本的網路形式是單客戶端通過TCP/IP連接到單伺服器,然後在之上傳輸XML。
3.傳輸的是與即時通訊相關的指令。在以前這些命令要麼用2進制的形式發送,要麼用純文本指令加空格加參數加換行苻的方式發送(比如MSN)。而XMPP傳輸的即時通訊指令的邏輯與以往相仿,只是協議的形式變成了XML格式的純文本。這不但使得解析容易了,人也容易閱讀了,方便了開發和查錯。而XMPP的核心部分就是一個在網路上分片斷發送XML的流協議。這個流協議是XMPP的即時通訊指令的傳遞基礎,也是一個非常重要的可以被進一步利用的網路基礎協議。