java 的網際網路設計 |
尚未結案
|
dididi
一般會員 發表:1 回覆:2 積分:0 註冊:2004-07-23 發送簡訊給我 |
|
neoart
版主 發表:22 回覆:582 積分:425 註冊:2003-05-09 發送簡訊給我 |
原則上,為每一個connect & listen的 socket建立一個執行緒去更新他的狀態.
(server接受某client的訊息,再發送到訊息指定的id的socket去,你會建立socket,就應該不是問題了)
如果有JMS server的話,用jms去做比較合宜,因為jms provider都有實作pubish & subscript的機制.一些細節交給jms的底層會比較省力一些
http://www.javaworld.com.tw/jute/post/view?bid=35&id=36218&tpg=1&ppg=1&sty=1&age=0#36218
有人在寫了.不過你還是要study一下人家的code. ----好累.剛回國又要出國了-------
|
dididi
一般會員 發表:1 回覆:2 積分:0 註冊:2004-07-23 發送簡訊給我 |
|
neoart
版主 發表:22 回覆:582 積分:425 註冊:2003-05-09 發送簡訊給我 |
既然已經會實作multichat,那再把訊息加上一下識別 id ,接收端也有這樣的辨識能力不就得了?
也就是clinet在加入聊天室時就是等同於取得一個聊天室的id(thread group id),
server在發送訊息時,針對有這樣id的client(socket thread)發送就可以了.
要像msn這樣的話,就是要有一個socket專門傳遞同一個聊天室友人的狀態給同一聊天室的clients.
直接用jms的subscribe(訂閱)就很類似了.想想,青紅灯聊天室就是個主題,所有加入這個聊天室的jms client就是訂閱這個主題的message reciever了.
這樣其他阿薩布魯或是五四三聊天室的人就不會收到青紅灯的訊息了嘛.
|
dididi
一般會員 發表:1 回覆:2 積分:0 註冊:2004-07-23 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |