// // RoomsListViewModel.swift // Chat // // Created by Sergey Tarasov on 10.08.2022. // import Foundation import XMPPFramework import XMPPFrameworkSwift final class RoomsListViewModel: NSObject, ObservableObject { let muc: XMPPMUCLight = XMPPMUCLight() @Published var rooms: [Room] = [] override init() { super.init() self.muc.activate(XMPPController.shared.xmppStream) self.muc.addDelegate(self, delegateQueue: .main) } func fetchRooms() { let success = self.muc.discoverRooms(forServiceNamed: "chat.msg.sharix-app.org") print(success) } } extension RoomsListViewModel: XMPPMUCLightDelegate { func xmppMUCLight(_ sender: XMPPMUCLight, didDiscoverRooms rooms: [DDXMLElement], forServiceNamed serviceName: String) { debugPrint(rooms) self.rooms = rooms.map({ Room(id: $0.attributeStringValue(forName: "jid") ?? "", name: $0.attributeStringValue(forName: "name") ?? "") }) } }