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

eXile 的專欄

[T] ICE實例學(xué)習(xí):Let's Chat! 節(jié)譯 (1)

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

需求

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

設(shè)計

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

推模型定義
     每個客戶端中提供一個 ChatRoomCallback 類型的ICE對象到服務(wù)器。當(dāng)發(fā)生事件時,服務(wù)器調(diào)用該對象的操作通知客戶。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)當(dāng)用戶首次連接到聊天室時,服務(wù)器調(diào)用 init 操作.     users參數(shù)告訴用戶目前連接到聊天室的所有用戶信息。
     2)有用戶連接到聊天室時,服務(wù)器調(diào)用 join 操作。
     3)有用戶斷開連接時,服務(wù)器調(diào)用 leave 操作。
     4)有用戶發(fā)送消息時,服務(wù)器調(diào)用 send 操作。
     注意設(shè)計使用異步事件。元數(shù)據(jù)指令 ["ami"] 標(biāo)明服務(wù)器異步調(diào)用回調(diào)操作。當(dāng)客戶端行為異常時,這對服務(wù)器是一個保護:客戶端可能長時間阻塞,服務(wù)器調(diào)用期間不會因此失去對線程的控制。

與防火墻協(xié)作
      略......

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

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

     Chat客戶端通過服務(wù)器提供的 ChatSession接口來和服務(wù)器通信。 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客戶端調(diào)用ChatSession的send來發(fā)送消息,服務(wù)器調(diào)用每一個客戶的ChatRoomCallback的send操作進行分發(fā)。

拉模型定義

TODO


posted on 2009-03-25 23:52 eXile 閱讀(2244) 評論(0)  編輯 收藏 引用 所屬分類: 網(wǎng)絡(luò)開發(fā)ICE

導(dǎo)航

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

統(tǒng)計

常用鏈接

留言簿(18)

隨筆分類

隨筆檔案

服務(wù)器編程

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            日韩网站在线看片你懂的| 久久国产精品99国产| 亚洲精品国产系列| 亚洲精品一区二区三区婷婷月| 亚洲免费观看| 99国产精品99久久久久久| 中文在线资源观看网站视频免费不卡| 国产欧美日韩精品丝袜高跟鞋| 久久久综合网| 欧美日韩mp4| 国产欧美日韩视频在线观看| 影院欧美亚洲| 亚洲婷婷国产精品电影人久久| 136国产福利精品导航| 99一区二区| 久久久久国产精品人| 亚洲国产精品毛片| 欧美一级电影久久| 欧美色网在线| 亚洲福利视频一区二区| 亚洲综合色视频| 欧美成人亚洲成人| 亚洲视频在线观看视频| 久久综合免费视频影院| 国产精品久久中文| 亚洲乱码一区二区| 另类图片国产| 亚洲欧美日本另类| 欧美国产极速在线| 加勒比av一区二区| 亚洲欧美日韩在线不卡| 亚洲人成网站色ww在线| 一区二区三区|亚洲午夜| 久久精品99| 国产精品入口福利| 99av国产精品欲麻豆| 欧美成人高清| 久久精品一区二区国产| 国产伦精品一区二区三区免费| 国产欧美在线视频| 亚洲一区二区三区高清| 欧美va亚洲va国产综合| 久久都是精品| 国产色产综合产在线视频| 亚洲私拍自拍| 日韩午夜一区| 欧美日韩国产综合一区二区| 亚洲激情在线播放| 欧美高清在线视频| 六月婷婷久久| 亚洲国产精品美女| 蜜臀av一级做a爰片久久| 欧美一激情一区二区三区| 国产精品视频区| 亚洲欧美日韩精品久久亚洲区 | 欧美一级精品大片| 国产精品午夜av在线| 亚洲午夜精品| 亚洲视频观看| 国产精品永久| 久久看片网站| 久久综合网络一区二区| 1000部国产精品成人观看| 久久亚洲美女| 久久青草欧美一区二区三区| 亚洲大胆av| 亚洲国产精品va在线观看黑人| 99riav国产精品| 欧美日韩国产va另类| 在线综合视频| 亚洲女爱视频在线| 激情久久婷婷| 亚洲国产精品日韩| 欧美视频一区| 久久精品夜色噜噜亚洲a∨| 欧美一区二区视频在线观看| 在线观看日韩av电影| 亚洲激情女人| 国产精品毛片大码女人| 久久久久一区二区三区| 免费高清在线一区| 在线综合亚洲欧美在线视频| 亚洲一区在线观看免费观看电影高清| 欧美精品午夜| 久久gogo国模啪啪人体图| 久久精品视频在线观看| 夜夜爽夜夜爽精品视频| 亚洲男人av电影| 在线欧美三区| 亚洲图片欧洲图片日韩av| 国产一级揄自揄精品视频| 亚洲电影下载| 国产精品美女一区二区| 另类尿喷潮videofree| 欧美性生交xxxxx久久久| 裸体一区二区三区| 国产精品第一区| 欧美国产三级| 国产在线观看一区| 日韩一级精品视频在线观看| 一区二区自拍| 在线综合亚洲| 亚洲欧洲日产国产综合网| 午夜精品短视频| 在线视频精品一区| 久久综合电影一区| 久久狠狠一本精品综合网| 欧美国产第一页| 欧美www视频| 国产亚洲一区二区三区在线播放| 久久精品99| 欧美午夜激情视频| 亚洲精品一区二区三区四区高清| 欧美激情欧美狂野欧美精品| 久久亚洲春色中文字幕久久久| 久久精品国产999大香线蕉| 国产网站欧美日韩免费精品在线观看| 亚欧美中日韩视频| 欧美日韩一级大片网址| 亚洲第一精品影视| 在线播放一区| 久久久久国产一区二区三区| 欧美在线观看视频一区二区| 欧美日韩一区二区三区在线视频| 亚洲摸下面视频| 欧美日本成人| 亚洲美女黄网| 亚洲私人影院| 欧美午夜不卡在线观看免费 | 亚洲综合色自拍一区| 欧美精品一区二区精品网 | 亚洲免费成人av电影| 久久理论片午夜琪琪电影网| 亚洲免费在线视频一区 二区| 久久精品国产久精国产一老狼| 最近看过的日韩成人| 欧美成人免费大片| 亚洲第一精品久久忘忧草社区| 欧美视频专区一二在线观看| 在线视频你懂得一区二区三区| 狠狠色综合播放一区二区 | 亚洲欧美三级在线| 国产精品视频免费观看| 亚洲欧美在线播放| 久久乐国产精品| 亚洲国产综合视频在线观看| 欧美va天堂va视频va在线| 亚洲激情欧美激情| 亚洲伊人色欲综合网| 国产精品裸体一区二区三区| 亚洲系列中文字幕| 欧美专区日韩专区| 136国产福利精品导航网址应用| 一区二区三区日韩欧美精品| 亚洲欧美另类久久久精品2019| 免费观看在线综合| 一本一本久久a久久精品牛牛影视| 影音先锋在线一区| 欧美日韩视频在线一区二区 | 欧美中文在线观看| 怡红院精品视频| 欧美精品18+| 亚洲综合色婷婷| 欧美电影在线观看| 亚洲欧美日本日韩| 国产日韩视频一区二区三区| 男同欧美伦乱| 亚洲一区三区视频在线观看| 免费观看一区| 亚洲伊人色欲综合网| 亚洲高清资源| 国产精品色网| 欧美国产高清| 欧美在线一二三| 亚洲美女性视频| 久久国产精品99精品国产| 亚洲精品四区| 狠狠色综合播放一区二区 | 亚洲国产三级网| 国产精品人成在线观看免费 | 亚洲丶国产丶欧美一区二区三区| 韩国成人精品a∨在线观看| 欧美精选在线| 久久久久久伊人| 亚洲欧美中文在线视频| 亚洲三级免费观看| 老司机午夜精品视频在线观看| 韩日视频一区| 国产精品欧美经典| 欧美另类综合| 老司机精品福利视频| 午夜精品在线看| 亚洲社区在线观看| 亚洲精品日韩激情在线电影| 欧美xx视频| 蜜臀久久99精品久久久久久9| 亚洲电影免费观看高清完整版在线观看| 午夜一区不卡| 亚洲欧美日韩区| 99ri日韩精品视频|