채널
해당 문서에서는 Channel
에서 사용할 수 있는 API에 대해 설명합니다.
채팅방 참여 메소드
채팅 서버에 연결하고 특정 채팅방에 참여합니다.
swift
await channel.join(timeout: TimeInterval(5))
1
파라미터 값
값 식별자 설명 timeout TimeInterval 지정한 시간만큼 접속 시도 대기, 기본값 5초
지정된 시간 내에 접속하지 못하면 VChatCloudError.networkError
를 발생시킵니다.
- 채팅방 접속 성공 시
ChannelDelegate.onJoinUserInit(_:)
콜백이 호출되며, 이 콜백의 파라미터인ChannelResultModel
을 통해 과거 채팅 내역을 받을 수 있습니다.
채팅방 퇴장 메소드
채팅방에서 퇴장하고 채팅 서버와의 연결을 종료합니다.
swift
channel.disconnect()
1
ChannelDelegate.disconnect
가 같이 호출됩니다.
접속 유저 목록 조회 메소드
현재 채팅방에 접속한 사용자들의 목록을 비동기적으로 가져옵니다.
swift
await channel.getClientList()
1
결과 값
값 식별자 설명 ChannelResultModel ChannelResultModel.body
의 접속한 유저 목록 JSON
일반 메시지 발송 메소드
채팅방의 모든 사용자에게 텍스트 메시지를 전송합니다.
swift
let message = "Hello VChatCloud!"
channel.sendMessage(message)
1
2
2
파라미터 값
값 식별자 설명 message String 전송할 텍스트 메시지
이모티콘 발송 메소드
채팅방에 이모티콘을 전송합니다.
다른 플랫폼(웹, Android 등)과의 호환성을 위해 "img/emoticon/emo01/emo01_001.png"
와 같은 형식의 문자열 데이터를 전송해야 합니다.
swift
let emoji = "img/emoticon/emo01/emo01_001.png"
channel.sendEmoji(emoji)
1
2
2
파라미터 값
값 식별자 설명 message String 전송할 이모티콘 정보
귓속말 발송 메소드
특정 사용자 한 명에게만 보이는 귓속말 메시지를 전송합니다.
수신자의 정확한 clientKey
와 nickname
을 알고 있어야 합니다.
swift
let message = "안녕하세요"
let receivedClientKey = "TARGET_CLIENT_KEY" // 실제 수신자의 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
메시지 전송 성공 시 ChannelDelegate.onSendWhisper
가 호출됩니다.
파일 전송 메소드
로컬 파일을 서버에 업로드하고, 업로드된 파일 정보를 채팅방에 공유합니다. 파일 전송은 URL 또는 Data
객체를 통해 두 가지 방식으로 지원됩니다.
- 업로드 후 파일에 접근하기 위한
URL
을 얻으시려면 VChatCloudAPI.loadFileUrl(_ fileKey: String)을 사용하시면 됩니다.- 업로드에 성공하면 리턴값인
FileUploadResponseModel
에서fileKey
값을 가져올 수 있습니다.
- 업로드에 성공하면 리턴값인
- 파일을 바로 저장하려면 VChatCloudAPI.downloadFile(_ model: FileItemModel, downloadURL: URL? = nil, sharePhotoApp: Bool = true)을 사용하시면 됩니다.
- 업로드는 파일 당 최대 100MB까지 가능합니다.
URL을 이용한 파일 전송
swift
let url = URL(/* INPUT YOUR LOCAL FILE URL */)
let result = await channel.sendFile(url)
1
2
2
파라미터 값
값 식별자 설명 fileUrl String 전송할 파일의 URL
Data 객체를 이용한 파일 전송
swift
let fileData = Data(/* INPUT YOUR FILE DATA */)
let fileName = "image.png" // 전송할 파일 이름 (확장자 포함)
let result = await channel.sendFile(data: fileData, fileName: fileName)
1
2
3
2
3
파라미터 값
값 식별자 설명 data Data 전송할 파일의 데이터 fileName String 전송할 파일의 이름 (파일 목록에서 표시됨)