<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

      最近開始準備用Java開發QQ,由于在大四的時候曾經開發過一簡單的QQ聊天機,現在想把它完善,使之盡量能夠用于實際應用中。
       在開發之前,自己想(推理)了一下QQ的工作原理和一些實現細節,發現自己想的、推理的和網上搜索到資料以及師兄的回答幾乎一致。
       下面就是我在網上所搜索的資料


    一、IM技術概念

      IM技術全稱Instant Messaging,中文翻譯“即時通訊”,它是一種使人們能在網上識別在線用戶并與他們實時交換消息的技術,是電子郵件發明以來迅速崛起的在線通訊方式。IM的出現和互聯網有著密不可分的關系,IM完全基于TCP/IP網絡協議族實現,而TCP/IP協議族則是整個互聯網得以實現的技術基礎。 最早出現即時通訊協議是IRC(Internet Relay Chat),但是可惜的是它僅能單純的使用文字、符號的方式通過互聯網進行交談和溝通。隨著互連網變得高度發達,即時通訊也變得遠不止聊天這么簡單,自1996年第一個IM產品ICQ發明后,IM的技術和功能也開始基本成型,語音、視頻、文件共享、短信發送等高級信息交換功能都可以在IM工具上實現,于是功能強大的IM軟件便足以搭建一個完整的通信交流平臺。目前最具代表性的幾款的IM通訊軟件有MSN、Google Talk、Yahoo、Messenger 、騰訊QQ等。 

     二、IM技術原理和工作方式

      典型的IM工作方式如下:登陸IM通訊中心(IM通訊服務器),獲取一個自建立的歷史的交流對象列表(好友列表),然后自身標志為在線狀態,當好友列表中的某人在任何時候登錄上線并試圖通過你的計算機聯系你時,IM系統會發一個消息提醒你,然后你能與他建立一個聊天會話通道進行各種消息如鍵入文字、通過語音等的交流,  從技術上來說,IM的基本技術原理如下:  IM服務器  登陸或注銷 登陸或注銷  用戶A通過列表找到B,用戶B獲得的消息并與之交談  通過IM服務器指引建立與B單獨的通訊通道  第一步,用戶A輸入自己的用戶名和密碼登錄IM服務器,服務器通過讀取用戶數據庫來驗證用戶身份,如果驗證通過,登記用戶A的IP地址、IM客戶端軟件的版本號及使用的TCP/UDP端口號,然后返回用戶A登錄成功的標志,此時用戶A在IM系統中的狀態為在線(Online Presence)。  第二步,根據用戶A存儲在IM服務器上的好友列表(Buddy List),服務器將用戶A在線的相關信息發送給也同時在線的IM好友的PC機,這些信息包括在線狀態、IP地址、IM客戶端使用的TCP端口(Port)號等,IM好友的客戶端收到此信息后將在予以提示。  第三步是IM服務器把用戶A存儲在服務器上的好友列表及相關信息回送到他的客戶端機,這些信息包括也在線狀態、IP地址、IM客戶端使用的TCP端口(Port)號等信息,用戶A的IM客戶端收到后將顯示這些好友列表及其在線狀態。  


     三、IM通訊方式  
    1.在線直接通訊  如果用戶A想與他的在線好友用戶B聊天,他將直接通過服務器發送過來的用戶B的IP地址、TCP端口號等信息,直接向用戶B的PC機發出聊天信息,用戶B的IM客戶端軟件收到后顯示在屏幕上,然后用戶B再直接回復到用戶A的PC機,這樣雙方的即時文字消息就不再IM服務器中轉,而是直接通過網絡進行點對點的通訊,即對等通訊方式(Peer To Peer)。  
    2.在線代理通訊  用戶A與用戶B的點對點通訊由于防火墻、網絡速度等原因難以建立或者速度很慢,IM服務器將會主動提供消息中轉服務,即用戶A和用戶B的即時消息全部先發送到IM服務器,再由服務器轉發給對方。 
    3.離線代理通訊  用戶A與用戶B由于各種原因不能同時在線的時候,如此時A向B發送消息,IM服務器可以主動寄存A用戶的消息,到B用戶下一次登陸的時候,自動將消息轉發給B。  
    4.擴展方式通訊  用戶A可以通過IM服務器將信息以擴展的方式傳遞給B,如短信發送方式發送到B的手機,傳真發送方式傳遞給B的電話機,以email的方式傳遞給B的電子郵箱等。  早期的IM系統,在IM客戶端和IM服務器之間通訊采用UDP協議,UDP協議是不可靠的傳輸協議,而在IM客戶端之間的直接通訊中,采用具備可靠傳輸能力的TCP協議。隨著用戶需求和技術環境的發展,目前主流的IM系統傾向于在IM客戶端之間、IM客戶端和IM服務器之間都采用TCP協議。  即時通訊相對于其他通訊方式如電話、傳真、email等的最大優勢就是消息傳達的即時性和精確性,只要消息傳遞雙方均在網絡上可以互通,使用即時通訊軟件傳遞消息,傳遞延時僅為1秒種  


    四、興起的嵌入式IM工具。 
       傳統的IM在統治了互聯網即時通訊領域長達十年之久,以其日趨穩定的定能,與較強的用戶黏著度,至今仍統治著這個巨大的市場。然而,軟件行業的技術精英們,并不滿足于此。他們厚積薄發,一直致力于開發出性能更為優越的即時通訊工具。當然,在功能上的不斷完善,自然是一個必然的發展方向,在Web2.0時代,如何大力增強用戶對網站的黏著度,而不僅僅是對于IM的擁附,已經成為他們的主攻方向了。于是,嵌入式IM工具,應運而生了。  

      相對以往的傳統的即使溝通工具,它們需要用戶下載軟件包,需要用戶進行安裝。對于擁有IM產品的網站而言,用戶在登陸網站后,不能直接使用其IM工具,對于流量與用戶的黏著度,都是有一定影響的。因此在IM與網站相互依存的今天,沒有哪家網絡公司,愿意將IM工具孤立開來。    于是,目前,一種新型的嵌入式IM工具就應運而生了。這種IM工具,不需要下載安裝,當用戶登陸網頁后,該IM直接嵌套在網頁中,可以直接使用。   
     而在功能上,則一點也不輸于傳統的IM,無論是傳統的文字溝通的速度與效率,還是近年來越來越成為IM工具必備的音頻/視頻功能,這種嵌入式IM都能提供非常穩定的傳輸。更值得一提的是,因為嵌入式IM是嵌套在網頁上的,軟件供應商,可以根據網站需求,設計出適合網站風格的IM產品。而不是像傳統的IM工具,千篇一律,毫無個性可言。   
     目前,這類嵌入式IM在社區、交友、社團及協作等類型的網站上,應用已經較為廣泛。在Web2.0時代,將發揮越來越重要的作用。

    posted on 2008-08-29 13:06 李威威 閱讀(4703) 評論(3)  編輯  收藏
    Comments
    • # re: QQ原理
      renrui
      Posted @ 2009-01-12 11:50
      通過IM服務器指引建立與B單獨的通訊通道,這個通道怎么建立?通過線程?  回復  更多評論   
    • # re: QQ原理
      李威威
      Posted @ 2009-03-31 23:09
      不好意思,很久沒來博客了,因工作原因目前暫時沒有學習java了,不過有時間還是會繼續學習深入的,至于“通過IM服務器指引建立與B單獨的通訊通道,這個通道怎么建立?通過線程” ,還沒有深入到這個問題,可以互相交流學習進步,謝謝你的關注  回復  更多評論   
    • # re: QQ原理[未登錄]
      abc
      Posted @ 2012-05-20 14:33
      太籠統,沒實際價值  回復  更多評論   

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
     
    主站蜘蛛池模板: 亚洲AV无一区二区三区久久| 又粗又黄又猛又爽大片免费| 久久噜噜噜久久亚洲va久| 一级成人生活片免费看| 国产成人精品久久亚洲高清不卡 | 高清免费久久午夜精品| 亚洲人成影院在线无码观看| 久久久久女教师免费一区| 亚洲人成色77777| 久久国产精品免费网站| 亚洲人成影院77777| 免费黄色网址入口| 免费在线观看自拍性爱视频| 久久亚洲精品无码观看不卡| 中文在线免费观看| 久久水蜜桃亚洲av无码精品麻豆| 4399影视免费观看高清直播| 中文字幕亚洲综合小综合在线| 在线免费视频一区二区| 特级毛片A级毛片100免费播放| 久久久久无码专区亚洲av| 久久免费观看国产99精品| 亚洲男人天堂2022| 亚洲精品国产精品乱码不卞| 美女视频黄a视频全免费网站色窝| 久久精品国产亚洲AV大全| 成人av免费电影| 久久国产一片免费观看| 91亚洲精品第一综合不卡播放| 曰批全过程免费视频在线观看| 精品在线视频免费| 亚洲成a人片在线观看中文动漫| 久久精品免费全国观看国产| 日本高清免费中文在线看| 亚洲丝袜美腿视频| 免费jlzzjlzz在线播放视频| 999久久久免费精品播放| 亚洲国产精华液2020| 亚洲成AV人在线观看天堂无码| 成年午夜视频免费观看视频| a级片免费在线播放|