Are you an LLM? You can read better optimized documentation at /doc/javascript/chatting/using-channels/channel-invitation.md for this page in Markdown format
사용자 초대하기
이 문서에서는 VChatCloud JavaScript SDK를 사용하여 채팅방에 있는 특정 사용자를 다른 채팅방으로 초대하는 방법을 설명합니다. 이 기능을 사용하면 그룹 대화 중에 특정 사용자들과 별도의 비공개 대화를 시작할 수 있습니다.
사전 준비
사용자를 초대하려면 다음 조건이 충족되어야 합니다.
- 채널 연결: 초대를 보내는 사용자와 받으려는 사용자 모두 동일한 채널(채팅방)에 접속 중이어야 합니다. 초대는 같은 채널에 있는 사용자에게만 보낼 수 있습니다.
- 초대 대상
clientKey
: 초대하려는 사용자의clientKey
를 알고 있어야 합니다.clientKey
는 사용자가 채널에 입장할 때 설정하는 고유 식별자입니다. - 초대할 채팅방: 사용자를 초대할 대상 채팅방이 존재해야 합니다. 이 채팅방은 미리 만들어 두거나 채팅방 생성 기능을 통해 동적으로 생성할 수 있습니다.
초대 메시지 전송
channel.sendInvite
메소드를 사용하여 특정 사용자에게 채팅방 초대 메시지를 전송합니다.
예제 코드
javascript
// 초대할 대상 채팅방 ID와 사용자 clientKey
const targetRoomId = "INVITE_TARGET_ROOM_ID";
const targetUserClientKey = "USER_TO_INVITE_CLIENT_KEY";
channel.sendInvite(
{
roomId: targetRoomId,
clientKey: targetUserClientKey,
},
function (err, res) {
if (err) {
console.error("초대 실패:", err);
return;
}
console.log("초대 성공:", res);
}
);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
파라미터
파라미터 | 타입 | 설명 |
---|---|---|
roomId | String | 초대할 채팅방의 ID |
clientKey | String | 초대받을 사용자의 clientKey |
콜백 함수
- 성공 시:
err
는null
이고,res
객체에 성공 응답이 반환됩니다. - 실패 시:
err
객체에 오류 정보가 반환됩니다.
초대 메시지 수신
초대를 받은 사용자의 클라이언트에서는 onPersonalInvite
이벤트가 발생합니다. 이 이벤트를 처리하여 사용자가 초대에 응답(수락 또는 거절)할 수 있는 UI를 구현할 수 있습니다.
예제 코드
javascript
channel.onPersonalInvite = function (event) {
console.log("채팅방 초대 받음:", event);
// event 객체: { roomId, roomName, nickName, clientKey, ... }
const join = confirm(
`'${event.nickName}'님이 '${event.roomName}' 채팅방으로 초대했습니다. 참여하시겠습니까?`
);
if (join) {
// 사용자가 초대를 수락한 경우, 해당 채팅방으로 입장하는 로직 구현
console.log(`'${event.roomId}' 채팅방에 참여합니다.`);
} else {
// 사용자가 초대를 거절한 경우
console.log("초대를 거절했습니다.");
}
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
초대 및 기타 채널 이벤트 처리에 대한 자세한 내용은 채널 이벤트 문서를 참고하세요.