<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 李威威 閱讀(4702) 評論(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
      太籠統,沒實際價值  回復  更多評論   

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


    網站導航:
     
     
    主站蜘蛛池模板: 西西人体大胆免费视频| 亚洲a级在线观看| 一级做a爰性色毛片免费| 免费观看a级毛片| 亚洲国产精品无码观看久久| 四色在线精品免费观看| 亚洲天然素人无码专区| 日韩午夜免费视频| 高h视频在线免费观看| 亚洲婷婷国产精品电影人久久| 无遮挡免费一区二区三区| 国产亚洲精品精品国产亚洲综合| 国产高潮久久免费观看| 久久亚洲精品成人| 最近高清中文字幕免费| 国产成人精品日本亚洲专| 成人免费毛片视频| 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 国产精品成人免费综合| 精品国产日韩亚洲一区91| 亚洲国产V高清在线观看| 你懂的免费在线观看| 亚洲欧洲在线播放| 日韩黄色免费观看| 美女巨胸喷奶水视频www免费| 亚洲日本一区二区| 99精品全国免费观看视频| 野花视频在线官网免费1| 国产亚洲综合成人91精品| 97国产免费全部免费观看| 亚洲av日韩aⅴ无码色老头| 亚洲色欲一区二区三区在线观看 | 国产乱子精品免费视观看片| 亚洲AV色无码乱码在线观看| 国产AⅤ无码专区亚洲AV| 狼群影院在线观看免费观看直播| 亚洲AV无码国产精品永久一区| 亚洲欧洲美洲无码精品VA| 免费视频专区一国产盗摄| rh男男车车的车车免费网站| 亚洲国产精品白丝在线观看|