Skip to content

Commit

Permalink
change topics to enum
Browse files Browse the repository at this point in the history
  • Loading branch information
hiroshihorie committed Mar 4, 2024
1 parent fb44564 commit 0caf9b3
Showing 1 changed file with 20 additions and 11 deletions.
31 changes: 20 additions & 11 deletions Shared/Contexts/RoomContext.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,15 @@ import LiveKit
import Logging
import SwiftUI

final class RoomContext: NSObject, ObservableObject {
static let chatTopic = "lk-chat-topic"
enum DataTopics: String {
case chat = "lk-chat-topic"
case reaction = "reactions"
}

let api = API(apiBaseURLString: "https://livestream.livekit.io/")
let room = Room()
final class RoomContext: NSObject, ObservableObject {
// Private
private let api = API(apiBaseURLString: "https://livestream.livekit.io/")
private let room = Room()

enum Step {
case welcome
Expand Down Expand Up @@ -239,20 +243,25 @@ final class RoomContext: NSObject, ObservableObject {
message = ""

guard let jsonData = try? encoder.encode(chatMessage) else { return }
try await room.localParticipant.publish(data: jsonData, options: DataPublishOptions(topic: RoomContext.chatTopic))
try await room.localParticipant.publish(data: jsonData, options: DataPublishOptions(topic: DataTopics.chat.rawValue))
}
}
}

extension RoomContext: RoomDelegate {
func room(_: Room, participant: RemoteParticipant?, didReceiveData data: Data, forTopic topic: String) {
// Check if chat topic
guard topic == RoomContext.chatTopic else { return }
// Debug
if let dataString = String(data: data, encoding: .utf8) {
logger.debug("Received data: \(dataString) with topic: \(topic)")
}

Task { @MainActor in
guard var chatMessage = try? decoder.decode(ChatMessage.self, from: data) else { return }
chatMessage.participant = participant
events.append(chatMessage)
// Check if chat topic
if topic == DataTopics.chat.rawValue {
Task { @MainActor in
guard var chatMessage = try? decoder.decode(ChatMessage.self, from: data) else { return }
chatMessage.participant = participant
events.append(chatMessage)
}
}
}

Expand Down

0 comments on commit 0caf9b3

Please sign in to comment.