Là n i giao ti p c a nhi u th c th trên m ng, đôi khi không th tránh kh i nh ng th c th có nh ng hành đ ng gây nh h ng t i các th c th khác, nên v n đ qu n lý, phân quy n trong m t phòng là khá quan tr ng.
XMPP cung c p m t s lo i phòng, qua đó th hi n cách th c, quy đ nh tham gia c a các th c th , m t s lo i ph bi n:
ÅMembers-Only Room: ch nh ng th c th có trong danh sách m i có th tham gia vào phòng.
ÅOpen Room: t t c m i th c th đ u có th tham gia vào phòng.
ÅPassword-Protected Room: c n m t kh u đ tham gia vào phòng.
ÅHidden Room: phòng này không th tìm th y b i d ch v Service Discovery.
ÅPublic Room: ng c l i v i Hidden Room, có th tìm ki m qua d ch v Service Discovery.
ng th i MUC cung c p m t s role và affiliation cho các th c th nh sau:
Åoutcast: nh ng th c th nh n affiliation này không đ c phép tham gia vào phòng.
Åvisitor: th c th này có th tham gia vào phòng, nh n thông đi p t các th c th khác nh ng không đ c phép g i các tin nh n.
Åparticipant: có kh n ng nh n và g i các thông đi p.
Åmember: th c th này có th nh n, g i và tham gia vào các phòng Member-Only.
Åmoderator: th c th này có th nh n, g i thông đi p, đ ng th i có kh n ng m i các participant và visitor ra kh i phòng, có kh n ng cho phép m t s th c th khác có quy n g i thông đi p.
Åadmin: ngoài nh ng ch c n ng nh m t moderator, admin còn có kh n ng xem thông tin v JID c a các th c th khác trong phòng, ngoài ra còn có kh n ng c u hình m t s ch c n ng c a phòng.
Åowner: có ch c n ng nh m t admin, ngoài ra còn có kh n ng qu n lý các admin, thi t l p toàn b c u hình c a phòng, và có kh n ng h y phòng.
Ví d , user01 là m t admin, user02 là m t participant, trong tr ng h p nào đó user01 mu n chuy n role c a user02 t participant xu ng còn visitor, user01 s g i m t IQ nh sau:
id=”fu82jd29”
to=”myroom@conference.test.xmpp” type=”set”>
<query xmlns=”http://jabber.org/protocol/muc#admin”> <item nick=”Teo” role=”visitor”/>
</query> </iq>
<iq from=” myroom@conference.test.xmpp” id=”fu82jd29”
to=” user01@test.xmpp/home”
type=”result”>
Phòng s thông báo đ n t t c m i th c th bao g m c user02 v s thay
đ i role này b ng m t presence:
<presence from=” myroom@conference.test.xmpp/Teo” to=”user02@test.xmpp/school”
<x xmlns=”http://jabber.org/protocol/muc#user”> <item affiliation=”none” role=”visitor”/> </x>
</presence> …
Ngay lúc này user02 s không đ c quy n g i tin nh n lên phòng, n u c g ng g i m t thông báo l i s đ c g i v :
<message from=” user02@test.xmpp/school”
to=”myroom@conference.test.xmpp” type=”groupchat”
<body>Alo!</body> </message>
<message from=” myroom@conference.test.xmpp”
to=” user02@test.xmpp/school”
<body>Alo!</body> <error type=”auth”>
<forbidden xmlns=”urn:ietf:param:xml:ns:xmpp-stanzas”/>
</error> </message>
Trong tr ng h p mu n m i user02 ra kh i phòng, role c a user02 s đ c chuy n thành none, hành đ ng này ch tác đ ng trên nick phòng c a user02 nên, user02 hoàn toàn có th tham gia l i phòng, do đó thông th ng
affiliation c ng s đ c thay đ i thành outcast, c m hoàn toàn user02 tham gia vào phòng vì affiliation s tác đ ng lên JID c a user02.
Yêu c u user02 ra kh i phòng:
<iq from=” user01@test.xmpp/home” id=”sfb786yh”
to=”myroom@conference.test.xmpp” type=”set”>
<query xmlns=”http://jabber.org/protocol/muc#admin”>
<item nick=”Teo” role=”none”/>
</query> </iq>
<iq from=” myroom@conference.test.xmpp”
id=” sfb786yh”
to=” user01@test.xmpp/home”
type=”result”>
Thông báo đ n các th c th :
<presence from=” myroom@conference.test.xmpp/Teo” to=”user02@test.xmpp/school”
<x xmlns=”http://jabber.org/protocol/muc#user”> <item affiliation=”none” role=”none”/>
<status code=”307”/>
</presence> …
Thi t l p affiliation, không cho user02 tham gia vào phòng:
<iq from=” user01@test.xmpp/home” id=”g678juiop”
to=”myroom@conference.test.xmpp” type=”set”>
<query xmlns=”http://jabber.org/protocol/muc#admin”> <item jid=”user02@test.xmpp” affiliation=”outcast”/> </query>
</iq>
<iq from=” myroom@conference.test.xmpp”
id=” g678juiop”
to=” user01@test.xmpp/home”
type=”result”>
Thông báo đ n các th c th trong phòng:
<presence from=” myroom@conference.test.xmpp/Teo” to=”user02@test.xmpp/school”
type=”unavailable”
<x xmlns=”http://jabber.org/protocol/muc#user”>
<item jid=”user02@test.xmpp” affiliation=”outcast”/>
<status code=”301”/>
</x> </presence> …
Trong các ví d trên, thành ph n <status/> v i các giá tr code khác nhau th hi n các lý do khác nhau, danh sách này th hi n đ y đ trong XEP-0045, sau đây là m t vài giá tr ph bi n:
Å307: yêu c u user ra kh i phòng.