# 샘플 앱 사용하기

샘플 앱을 실행하기 위한 필요 과정을 알아봅시다.

# 필수 변경사항

주의사항

샘플 코드를 다운로드 받으신 후 channelKey 값을 변경해야 합니다. 하단의 설명을 통해서 변경할 부분을 확인하여서 변경해주시면 됩니다.

# 소스코드 💾

# channelKey 변경

  1. iOS 샘플 앱을 다운로드 합니다.
  2. 압축된 파일을 해제하고 view/Login/LoginView.swift파일을 편집기로 열어줍니다.
  3. CMS 화면에서 개설한 채팅방의 Channel Key를 복사합니다.
  4. goLogin함수 내부에서 channelKey 라는 변수명 값에 3번에서 복사한 Channel Key 값을 붙여 넣어줍니다.
  • view/Login/LoginView.swift
let channelKey = "YOUR_CHANNEL_KEY"
1

# Channel

Channel 클래스를 이용하여 채팅방에 진입하고, 메시지를 전송할 수 있습니다. 아래 코드는 채팅방 진입만 다루고 있고, 메시지 전송 등의 자세한 메서드 설명은 좌측 메뉴리스트의 채널를 참고해주세요.

do {
    let channelKey = "YOUR_CHANNEL_KEY"

    // 사용자의 clientKey값을 정의합니다. 단 사용자끼리 겹치지 않게 설정해야 합니다.
    clientKey = clientKey.isEmpty ? randomString(length: 10) : clientKey

    userViewModel.nickname = nickname
    userViewModel.clientKey = clientKey
    userViewModel.grade = "user"
    userViewModel.userInfo = ["profile":profileIndex.description]

    // VChatCloudAPI를 사용해서 방 정보를 불러옵니다.
    if let roomData = await VChatCloudAPI.getRoomInfo(roomId: channelKey),
       let likeCount = await VChatCloudAPI.getLike(roomId: channelKey) {
        chatroomViewModel.channelKey = channelKey
        chatroomViewModel.title = roomData.title
        chatroomViewModel.rtcStat = roomData.rtcStat
        chatroomViewModel.roomType = roomData.roomType
        chatroomViewModel.lockType = roomData.lockType
        chatroomViewModel.userEmail = roomData.userEmail
        chatroomViewModel.userMax = roomData.userMax
        chatroomViewModel.like = likeCount.like_cnt
    }

    // 채팅 서버에 접속합니다.
    let channel = try await VChatCloud.shared.connect(chatroomViewModel: chatroomViewModel, userViewModel: userViewModel)
    // channel.delegate에 채널 이벤트 처리를 위임할 객체를 등록합니다.
    channel.delegate = MyChannel.shared
    // 실제 채팅방에 접속합니다.
    try await channel.join()
} catch {
    if let channelError = error as? ChannelError {
        VChatCloud.shared.disconnect()
    } else {
        debugPrint("error >>>")
        debugPrint(error.localizedDescription)
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Copyright 2022. E7Works Inc. & JOYTUNE Corp. All Rights Reserved.