.C b nv Multi-User Chat

Một phần của tài liệu Xây dựng ứng dụng Instant Message theo giao thức XMPP (Trang 42)

Nói m t cách t ng th MUC, v n đ đ c quan tâm trong vi c qu n lý và x lý là các phòng chat “room”. XMPP, MUC đ c qu n lý b i m t d ch v riêng bi t so v i h th ng Instant Messaging đ c g i là “component” và

đ c l u tr trên m t domain riêng, th ng là domain con c a domain chính. Trong n i dung khóa lu n, domain đ c s d ng là conference.test.xmpp.

myroom@conference.test.xmpp, đ tham gia vào m t phòng, client s g i m t presence tr c ti p đ n đa ch phòng, ví d user01 s tham gia vào myroom.:

<presence from=” user01@.test.xmpp/home”

to=”myroom@conference.test.xmpp/Ti”/>

Giá tr myroom@conference.test.xmpp/Ti g i là room JID c a user01. nh d ng chung c a room JID là room@domain.tld/nick.

Sau khi m t client tham gia vào m t phòng, phòng này s gi i quy t nh ng v n đ sau:

ÅG i thông báo s tham gia c a client đ n t t c các th c th đã tham gia vào phòng.

ÅClient c ng s nh n đ c thông báo s hi n di n c a t t c các th c th khác đ t o thành m t roster c c b trong phòng này.

Å ng th i m t s b n tin đ c trao đ i g n đây trên phòng c ng s đ c g i t i client.

u tiên, các th c th khác s nh n đ c thông báo tham gia c a user01:

<presence from=” myroom@conference.test.xmpp/Ti” to=”user02@.test.xmpp/shcool”/> <presence from=” myroom@conference.test.xmpp/Ti” to=”user03@.test.xmpp/library”/>

Ngay sau đó, user01 nh n đ c thông báo t các th c th khác:

<presence from=” myroom@conference.test.xmpp/Teo” to=”user01@.test.xmpp/home”/> <presence from=” myroom@conference.test.xmpp/Bin” to=”user01@.test.xmpp/home”/>

phòng, kèm theo thành ph n <delay/> ghi nh n th i gian các b n tin này đ c g i đi:

<message from=” myroom@conference.test.xmpp/Teo” to=”user01@.test.xmpp/home” type=”groupchat”>

<body>Chào</body>

<delay xmlns=”urn:xmpp:delay” stamp=”2011-09- 14T15:20:20Z”/>

</message>

<message from=” myroom@conference.test.xmpp/Bin” to=”user01@.test.xmpp/home” type=”groupchat”>

<body>Chào m i ng i</body>

<delay xmlns=”urn:xmpp:delay” stamp=”2011-09- 14T15:22:31Z”/>

</message>

T i th i đi m này, user01 đã có th i g i các tin nh n c a mình đ n các th c th khác trong phòng:

<message from=” user01@.test.xmpp/home”

to=”myroom@conference.test.xmpp” type=”groupchat”>

<body>User01 chào m i ng i</body> </message>

ng v i m i tin nh n c a client đ c g i lên, phòng s x lý và s g i tin nh n này đ n t t c các client khác trong phòng:

<message from=” myroom@conference.test.xmpp/Ti” to=”user02@test.xmpp/school”

type=”groupchat”> <body>User01 chào m i ng i</body>

</message>

<message from=” myroom@conference.test.xmpp/Ti” to=”user03@test.xmpp/library” type=”groupchat”>

<body>User01 chào m i ng i</body> </message>

Khi mu n r i kh i phòng, client s g i m t presence v i type

unavailable:

<presence from=” user01@test.xmpp/school”

to=”myroom@conference.test.xmpp/Ti” type=”unavailable”>

B n tin này c ng s đ c g i đ n t t c các client khác trong phòng đ

thông báo user01 đã r i kh i phòng:

<presence from=” myroom@conference.test.xmpp/Ti” to=”user02@test.xmpp/school”

type=”unavailable”>

<presence from=” myroom@conference.test.xmpp/Ti” to=”user03@test.xmpp/library” type=”unavailable”>

Một phần của tài liệu Xây dựng ứng dụng Instant Message theo giao thức XMPP (Trang 42)

Tải bản đầy đủ (PDF)

(107 trang)