# 채널
해당 문서에서는 Channel
에서 사용할 수 있는 API에 대해 설명합니다.
# 참여 메소드
채팅방에 접속합니다.
설정한 시간(기본값: 5초)이 지났지만 접속하지 못했을 경우 VChatCloudError.networkError
를 발생시킵니다.
ChannelDelegate.onJoinUserInit
에서 ChannelResultModel
을 받아 과거 채팅 내역을 불러올 수 있습니다.
await channel.join(timeout: TimeInterval(5))
1
파라미터 값
값 식별자 설명 timeout TimeInterval 지정한 시간만큼 접속 시도 대기, 기본값 5초
# 퇴장 메소드
채팅방에서 퇴장 처리와 채팅 서버의 연결을 종료합니다.
ChannelDelegate.disconnect
가 같이 호출됩니다.
channel.disconnect()
1
# 접속유저 목록 조회 메소드
채팅방에 접속한 유저 목록을 가져옵니다.
await channel.getClientList();
1
결과 값
값 식별자 설명 ChannelResultModel ChannelResultModel.body
의 접속한 유저 목록 JSON
# 메시지 발송 메소드
채팅방에 일반 메시지를 전송합니다.
let message = "Hello VChatCloud!"
channel.sendMessage(message)
1
2
2
파라미터 값
값 식별자 설명 message String 전송할 메시지
# 이모지 발송 메소드
채팅방에 이모티콘을 전송합니다.
다른 클라이언트(웹, 안드로이드 등)와 동일한 형상을 유지하기 위해 "img/emoticon/emo01/emo01_001.png"
와 같이 데이터를 전송해야 합니다.
let emoji = "img/emoticon/emo01/emo01_001.png"
channel.sendEmoji(emoji)
1
2
2
파라미터 값
값 식별자 설명 message String 이모티콘 정보
# 귓속말 메소드
유저 1명에게 귓속말을 전송합니다.
받을 상대방의 clientKey
와 nickname
이 있어야 합니다.
ChannelDelegate.onSendWhisper
가 같이 호출됩니다.
let message = "안녕하세요"
let receivedClientKey = "mp9y8WCRAp" // 실제 사용자의 clientKey로 변경해주세요.
let receivedUserNickname = "사용자" // 실제 사용자의 닉네임으로 변경해주세요.
channel.sendWhisper(message, receivedClientKey: receivedClientKey, receivedUserNickname: receivedUserNickname)
1
2
3
4
2
3
4
파라미터 값
값 식별자 설명 message String 전송할 메시지 receivedClientKey String 상대방의 clientKey
receivedUserNickname String 상대방의 nickname
# 파일 전송 메소드
서버에 파일을 업로드 한 뒤, 채팅서버에 파일 정보를 공유합니다. 해당 기능은 2가지의 API가 있습니다.
- 업로드 후 파일에 접근하기 위한
URL
을 얻으시려면 VChatCloudAPI.loadFileUrl(_ fileKey: String)을 사용하시면 됩니다.- 업로드에 성공하면 리턴값인
FileUploadResponseModel
에서fileKey
값을 가져올 수 있습니다.
- 업로드에 성공하면 리턴값인
- 파일을 바로 저장하려면 VChatCloudAPI.downloadFile(_ model: FileItemModel, downloadURL: URL? = nil, sharePhotoApp: Bool = true)을 사용하시면 됩니다.
- 업로드는 파일 당 최대 100MB까지 가능합니다.
let url = URL(/* INPUT YOUR LOCAL FILE URL */)
let result = await channel.sendFile(url)
1
2
2
파라미터 값
값 식별자 설명 fileUrl String 전송할 파일의 URL
let data = Data() // INPUT YOUR DATA
let fileName = "image.png"
let result = await channel.sendFile(data: data, fileName: fileName)
1
2
3
2
3
파라미터 값
값 식별자 설명 data Data 전송할 파일의 데이터 fileName String 전송할 파일의 이름 (파일 목록에서 표시됨)