TRVCamSender.JoinGroup, LeaveGroup, GetUsersFromGroup, GetGroupInfo, GetAllGroups

<< Нажмите, чтобы показать Содержание >>

TRVCamSender.JoinGroup, LeaveGroup, GetUsersFromGroup, GetGroupInfo, GetAllGroups

Методы работы с группами пользователей на сервере.

procedure JoinGroup(AGUIDGroup: TGUID; Permanent: Boolean = False;

  AGroupName: TRVMAnsiString = ''; AGroupPassword: TRVMAnsiString = '';

  OnlyExistingGroup: Boolean = False);

procedure LeaveGroup(GUIDGroup: TGUID);

procedure GetUsersFromGroup(GUIDGroup: TGUID; Online: Boolean);

procedure GetAllGroups;
procedure GetGroupInfo(AGUIDGroup: TGUID);

Эти методы работают только в том случае, если отправитель подключен к TRVMediaServer по сети в качестве составной части клиента.

Сервер может иметь несколько групп клиентов (пользователей). Пользователи, принадлежащие к группе, могут обмениваться данными друг с другом. Группа идентифицируется уникальным идентификатором (GUIDGroup). Группы могут использоваться для реализации комнат чатов.

server-group

Присоединение и выход

JoinGroup добавляет этого отправителя в группу (идентифицируемую по GUIDGroup) на сервере. Если параметр OnlyExistingGroup = True, пользователь присоединяется к группе только в том случае, если она уже существует на сервере, в противном случае создаётся новая группа (если количество групп на сервере не превышает TRVMediaServer.MaxGroupCount).

Когда новый пользователь присоединяется к существующей группе, все члены этой группы получают уведомления об этом новом пользователе (событие OnUserLeavesGroup у получателей).

Пользователь может указать имя группы и пароль. Если этот метод создаёт новую группу, все остальные пользователи должны указать тот же пароль для присоединения к этой группе.

Если параметр Permanent = False, пользователь становится членом группы до тех пор, пока не вызовет LeaveGroup или пока не будет разорвано соединение с этим клиентом. Все остальные пользователи получают уведомление, когда пользователь покидает эту группу (события OnUserLeavesGroup у получателя).

Если параметр Permanent = True, пользователя нельзя удалить из группы. Когда пользователь вызывает LeaveGroup или когда он/она отключается от сервера, он/она становится «оффлайн», но остаётся членом группы. Такого пользователя можно удалить из группы только после повторного присоединения к ней с параметром Permanent = False. Эта функция позволяет использовать группы в качестве списков контактов.

LeaveGroup удаляет этого отправителя из группы. Все члены этой группы получают уведомления о выходе этого пользователя из группы (событие OnUserLeavesGroup у получателей). Если это был последний пользователь группы, группа удаляется на сервере. Если соединение между этим клиентом и сервером разрывается, сервер сам уведомляет членов группы о выходе этого пользователя.

Получение информации

GetUsersFromGroup получает список пользователей, принадлежащих к группе. Если параметр Online=True, метод возвращает только пользователей группы, которые в данный момент подключены. Список пользователей возвращается в событии OnGetGroupUsers получателя.

GetAllGroups возвращает список групп на сервере. Эта команда поддерживается только в том случае, если rvcpUseSystemCmd и rvcpCmdAllGroups включены в TRVMediaServer.CmdOptions. Список групп возвращается в событии OnGetAllGroups получателя.

GetGroupInfo возвращает информацию о конкретной группе (её имя и создателя). Эта информация возвращается в событии OnGetGroupInfo получателя.

См. также:

свойство GUIDGroup

информация о группах в разделе о TRVMediaServer