青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

eXile 的專欄

[T] ICE實例學習:Let's Chat! 節譯 (1)

節譯,原文地址:http://www.zeroc.com/articles/index.html

需求

      1)一個典型的聊天室應用,使用客戶器/服務器架構,客戶發送消息到中心服務器,然后,消息發送給其它客戶。
      2)盡量減少服務器管理,甚至可以不需要。
      3)通信必須安全,通過公共網絡時必須要保護個人隱私。
      4)當客戶端和服務器有防火墻保護時也能正常運行,客戶端不用修改它的網絡或者防火墻設置。
      5)客戶端可以在各種平臺上利用多種語言實現,比如說利用Web瀏覽器作為客戶端。
      6)客戶端可能網絡帶寬有限,所以應該盡量減少網絡流量。
      只支持單個聊天室。(多個聊天室只是代碼多了點,并沒有增加任何難度)。

設計

      在本文中,將會演示多種客戶端的設計和實現。包括:
      1)C++命令行客戶端;
      2)JAVA SWing GUI客戶端;
      3).NET WPF客戶端;
      4)PHP網頁客戶端;
      5)Silverlight 網頁客戶端;
     
     注意,對于ICE3.3, PHP和Ruby只提供了客戶端的Run Time。我們在考慮當連接的客戶如何從服務器獲得消息時,必須要想到這一點。對于消息發布,有兩種通信模型:
     1)推模型:略
     2)拉模型:略
     推模型比較簡單,容易實現,我們的Chat 客戶端中,C++,Java, .Net, Silverlight(0.3)都使用該模型。PHP客戶端使用拉模型。

推模型定義
     每個客戶端中提供一個 ChatRoomCallback 類型的ICE對象到服務器。當發生事件時,服務器調用該對象的操作通知客戶。SLICE定義如下:
// Slice 
module Chat 

// Implemented by clients 
interface ChatRoomCallback 

    [
"ami"void init(Ice::StringSeq users); 
    [
"ami"void join(long timestamp, string name); 
    [
"ami"void leave(long timestamp, string name); 
    [
"ami"void send(long timestamp, string name, string message); 
}; 
};

     1)當用戶首次連接到聊天室時,服務器調用 init 操作.     users參數告訴用戶目前連接到聊天室的所有用戶信息。
     2)有用戶連接到聊天室時,服務器調用 join 操作。
     3)有用戶斷開連接時,服務器調用 leave 操作。
     4)有用戶發送消息時,服務器調用 send 操作。
     注意設計使用異步事件。元數據指令 ["ami"] 標明服務器異步調用回調操作。當客戶端行為異常時,這對服務器是一個保護:客戶端可能長時間阻塞,服務器調用期間不會因此失去對線程的控制。

與防火墻協作
      略......

      Glacer2是ICE針對這種情況的預建的解決方案,它扮演一個服務器前端。Glacer2具有以下特征:
      1)支持會話概念,API支持認證機制,可實現自定義的會話創建和認證。
      2)單個Glacer2可進行任意數量的服務器和客戶端轉發。服務器只要有一個端口接受外來連接,而不用管具體服務器個數。
     3)對于具有防火墻的客戶端,服務器也可調用其提供的回調。

     因為 Glacer2會話概念是面向連接的,只有當客戶端同Glacer2的連接打開時,更精確的說,同Glacer2保持一個激活的會話時,服務器才可以對客戶進行回調。換句話說,當客戶端同Glacer2失去連接,Glacer2自動銷毀會話。為了阻止客戶端到Glacer2的連接被意外關閉,客戶端必須要禁用ACM(Automic Connection Management, 自動連接管理)。而且,Glacer2通常對長時間空閑的會話設置超時。當聊天室長時間沒有動作時,為了防止Glacer2銷毀會話,客戶端必須周期性進行激活,比如,調用 ice_ping, 來對Glacer2的會話超時進行重置。

     Chat客戶端通過服務器提供的 ChatSession接口來和服務器通信。 ChatSession 從Glacer2::Session派生。
// Slice 
module Chat 

exception InvalidMessageException 

    
string reason; 
}; 
 
interface ChatSession extends Glacier2::Session 

    
void setCallback(ChatRoomCallback* cb); 
    [
"ami"long send(string message) throws InvalidMessageException; 
}; 
};

      這就是推模型,Chat客戶端調用ChatSession的send來發送消息,服務器調用每一個客戶的ChatRoomCallback的send操作進行分發。

拉模型定義

TODO


posted on 2009-03-25 23:52 eXile 閱讀(2250) 評論(0)  編輯 收藏 引用 所屬分類: 網絡開發 、ICE

導航

<2009年3月>
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

統計

常用鏈接

留言簿(18)

隨筆分類

隨筆檔案

服務器編程

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品尤物| 久久嫩草精品久久久久| 欧美激情按摩| 最新国产の精品合集bt伙计| 久久久水蜜桃| 欧美在线观看网址综合| 国产精品一区二区在线| 这里只有精品电影| 亚洲欧洲久久| 久久麻豆一区二区| 国产一区二区你懂的| 欧美一区影院| 午夜精品国产更新| 国产日产欧美一区| 久久激情中文| 久久精品视频va| 1769国产精品| 亚洲片在线观看| 狂野欧美一区| 一本一本a久久| 99国产精品久久| 国产精品综合色区在线观看| 久久精品国产亚洲精品| 欧美在线播放视频| 亚洲国产精品v| 亚洲精选大片| 国产精品网站在线| 久久精品亚洲一区二区三区浴池| 欧美一区二区在线看| 在线观看成人av| 欧美黑人在线播放| 欧美激情亚洲激情| 午夜在线观看免费一区| 欧美中文在线观看| 亚洲美女毛片| 亚洲欧美在线aaa| 韩国成人精品a∨在线观看| 美女黄色成人网| 免费看亚洲片| 欧美亚洲综合在线| 久久婷婷久久一区二区三区| 一区二区激情视频| 香蕉成人啪国产精品视频综合网| 欧美另类综合| 蜜桃av一区二区三区| 欧美精品一区二| 久久亚洲影音av资源网| 欧美日韩一区二区三区在线看| 亚洲欧美一区二区精品久久久| 久久综合网hezyo| 亚洲综合视频网| 欧美jizz19hd性欧美| 亚洲综合日韩在线| 欧美高清视频一区二区| 久久精品国产一区二区三| 欧美日韩精品久久| 乱码第一页成人| 国产精品九九久久久久久久| 久久天天躁狠狠躁夜夜av| 国产精品成人一区二区三区吃奶| 久久伊伊香蕉| 国产午夜亚洲精品羞羞网站 | 欧美日韩免费在线| 欧美亚洲色图校园春色| 欧美激情精品久久久久久| 久久久久国产精品麻豆ai换脸 | 中文无字幕一区二区三区| 午夜伦欧美伦电影理论片| 国产亚洲亚洲| 亚洲一区二区伦理| 亚洲日韩成人| 免费国产一区二区| 欧美不卡高清| 一区二区亚洲| 久久久亚洲综合| 一本久久知道综合久久| 亚洲一区二区三区在线| 日韩亚洲综合在线| 久久婷婷激情| 久久综合九色综合欧美狠狠| 欧美激情麻豆| 欧美黄色网络| 亚洲激情国产精品| 久久久综合激的五月天| 久久久久久欧美| 国产在线日韩| 久久久.com| 久久综合色一综合色88| 一区在线影院| 欧美日韩国产成人精品| 亚洲国产99| 夜夜嗨av一区二区三区| 欧美日韩在线播放一区| 日韩一区二区精品视频| 亚洲一区中文| 欧美成人一区二区三区片免费| 日韩网站在线观看| 亚洲欧美制服中文字幕| 国产午夜亚洲精品羞羞网站| 久久国产精品72免费观看| 免费一区视频| 一本色道久久综合亚洲精品小说| 欧美午夜电影在线| 性做久久久久久免费观看欧美| 久久综合国产精品台湾中文娱乐网| 影音先锋亚洲一区| 欧美日韩福利视频| 99精品欧美一区| 久久久精品动漫| 亚洲美女性视频| 国产精品日日摸夜夜摸av| 久久久久久久久久久成人| 免费成人高清视频| 99亚洲一区二区| 国产在线拍揄自揄视频不卡99| 免费一级欧美片在线观看| 一区二区高清在线观看| 久久精品综合网| 亚洲精选视频在线| 国产精品影片在线观看| 麻豆精品视频在线| 亚洲中午字幕| 亚洲国产精品久久| 久久精品国产99精品国产亚洲性色| 91久久久在线| 国产一区二区看久久| 欧美日产一区二区三区在线观看 | 在线免费日韩片| 欧美日韩一区免费| 久久久综合精品| 亚洲一区不卡| 亚洲精品小视频在线观看| 老司机成人网| 欧美在线观看视频一区二区| 亚洲国产精品视频| 国产欧美一二三区| 欧美电影在线| 美国成人直播| 久久久久久夜精品精品免费| 亚洲午夜激情免费视频| 亚洲欧洲一区二区三区久久| 老司机精品久久| 久久精品91| 午夜在线电影亚洲一区| 99ri日韩精品视频| 91久久精品日日躁夜夜躁欧美| 国产亚洲va综合人人澡精品| 欧美性猛交xxxx乱大交蜜桃| 欧美国产精品人人做人人爱| 久久性色av| 久久久久久久欧美精品| 欧美主播一区二区三区| 亚洲在线视频网站| 一区二区国产在线观看| 亚洲欧美国产日韩天堂区| 一区二区欧美在线观看| 亚洲免费观看在线观看| 日韩亚洲欧美成人| 亚洲精选一区| 99国内精品| 亚洲视频综合在线| 一本色道久久综合亚洲91| 这里只有精品丝袜| 亚洲性视频网站| 亚洲一区中文| 午夜视频一区在线观看| 欧美一区二区免费视频| 亚洲欧美偷拍卡通变态| 欧美影视一区| 久久亚洲春色中文字幕久久久| 欧美激情第1页| 欧美日韩免费网站| 国产精品综合不卡av| 国产视频一区三区| 激情久久综合| 99精品国产在热久久下载| 亚洲一区二区三区高清 | 亚洲福利视频一区| 亚洲精品美女在线观看| 亚洲一区二区在线| 99精品免费| 久久久精品动漫| 欧美激情精品久久久久久变态 | 亚洲人永久免费| 在线亚洲一区| 麻豆精品精华液| 99成人精品| 久久精品官网| 欧美日韩国产不卡| 国内精品久久久久国产盗摄免费观看完整版| 国内精品视频在线播放| 亚洲毛片在线看| 午夜伦理片一区| 91久久极品少妇xxxxⅹ软件| 亚洲性xxxx| 欧美成va人片在线观看| 国产啪精品视频| 99精品国产在热久久婷婷| 久久久久中文| 亚洲日本中文|