Conference
Введение
Традиционно считается, что службы передачи коротких сообщений из непосредственного чата двух клиентов, нежели общения многих клиентов одновременно, что называется по-разному: "групчат" или "конференция". Функциональность групчатов наследована от таких систем, как Internet Relay Chat (IRC). Jabber-сообщество разработало и внедрило основной протокол групчатов уже в 1999 году. Этот "groupchat 1.0" протокол предоставлял минимальный набор возможностей для комнат общения, но был, скорее, ограничен в возможностях. Новая спецификация (XEP-0045) (Multi-User Chat или MUC) построена на более старом "groupchat 1.0" протоколе, обратно совместимо со старым протоколом, но предоставляет расширенные возможности, такие как приглашения, модерирование и администрирование, и специализированные типы комнат.
Использование
Для использования конференций, необходимо использовать клиент, поддерживающий MUC. На данный момент, большое число клиентов поддерживают его в разной степени. Например, с помощью PSI, Вы можете общаться в конференции, но не можете администрировать и модерировать её (верно до версии 0.10 включительно). Такие клиенты, как Tkabber, JAJC, Bombus поддерживают MUC полностью.
Чтобы войти в конференцию, вам нужно найти соответствующий пункт меню в вашей программе-клиенте. Например, Join Group в Tkabber или Join Groupchat в PSI, ввести имя комнаты и сервер конференций, на котором она находится, например, conference.jabber.ru. Для того, чтобы создать новую комнату, обычно, нужно просто войти в несуществующую комнату на нужном сервере конференций. Список существующих комнат можно увидеть, используя Service Discovery приметильно к серверу конференций.
Типы комнат
- Fully-Anonymous Room - комната, в которой полный или неполный JID посетителя не может быть виден никем, включая администраторов и владельцев комнаты; такие комнате НЕ РЕКОММЕНДУЮТСЯ.
- Hidden Room - комната, которая не может быть найдена любым пользователем с помощью стандартных средств, таких как поиск и Service Discovery.
- Members-Only Room - комната, к которой пользователь не может подключиться, не будучи в её списке пользователей (members list).
- Moderated Room - комната, в которой только пользователи, обладающие правом голоса (voice) могут посылать сообщения всем посетителям.
- Non-Anonymous Room - комната, в которой полный JID посетителя виден всем посетителям, хотя посетитель может выбрать любой никнейм.
- Open Room - комната, в которую может войти любой, даже не находящийся в списке её пользователей.
- Password-Protected Room - комната, в которую можно войти, только набрав верный пароль.
- Persistent Room - комната, которая не уничтожается после того, как последний посетитель выходит.
- Public Room -- комната, которая может быть найдена любым пользователям, используя поиск либо Service Discovery.
- Semi-Anonymous Room - комната, в которой полный JID посетителя может быть виден только администраторами и модераторами комнаты.
- Temporary Room - комната, которая уничтожается после того, как последний пользователь выходит из неё.
- Unmoderated Room - комната, в которой любой посетитель может писать сообщения всем посетителям.
- Unsecured Room -- комната, в которую любой пользователь может войти, не предоставив корректного пароля.
JID и MUC
Как и всё в Jabber, комнаты имеют свой собственный JID, с помощью которого они могут быть идентифицированы, и с их же помощью производится вход в нужную конференцию.
JID комнаты имеет вид имя_комнаты@сервер_конференций. Например, конференция JRuDevels имеет JID jrd@conference.jabber.ru, что означает, что комната имеет имя jrd и расположена она на сервере конференций conference.jabber.ru. Обычно, Вы можете использовать любой сервер конференций посредством S2S-связей между серверами.
JID каждого из посетителей комнаты имеет вид имя_комнаты@сервер_конференций/никнейм, за счет чего достигается анонимность посетителей. В не-анонимных комнатах и администраторам в анонимных, реальный JID посетителя специально. Например, JID пользователя с никнеймом Binary в конференции jrd на сервере конференций conference.jabber.ru будет выглядеть как jrd@conference.jabber.ru/Binary. Заметим, что так как ресурс в JID чувствителен к регистру, то и никнейм пользователей в конференции чувствителен к регистру, поэтому никнеймы Binary и binary могут находится в одной конференции одновременно, не вызывая при этом конфликта.
Роли (Roles)
Роль (Role) - это одно из двух измерений позиции посетителя комнаты (прав и положения).
Определены следущие Роли, которые может иметь посетитель:
- Moderator
- Participant
- Visitor
- None (отсутствие Роли)
Роли являются временными и они не обязаны оставаться за пользователем во время разных подключений его к комнате. Не существует конкретной привязки ролей к присоединениям (см. далее).
Moderator - наиболее властная из всех ролей, которая может управлять некоторыми ролями других посетителей.
Participant - имеет право голоса (Voice) всегда.
Visitors - не могут посылать сообщения всем посетителям, когда комната является Moderated.
Affiliations
Определено пять типов Affiliation, которые могут принимать посетители:
- Owner (Владелец)
- Admin (Администратор)
- Member
- Outcast
- None
Affiliation сохраняется за пользователем в течении нескольких входов в конференцию, они назначаются на основе реального неполного JID посетителя.
Member - позволяет администрации комнаты определить белый список пользователей, которые могут входить в комнату типа Members-Only.
Outcast - забанненый пользователь, не имеющий права на вход в конференцию.
Admin - обладает правом редактирования списка модераторов, бана и кика.
Owner - обладает правами конфигурирования, уничтожения комнаты, а также редактирования списка Администраторов и Владельцев.