12345678910111213141516171819202122232425262728293031323334 |
- 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") ?? "") })
- }
- }
|