Message

Send text message

client?.sendTextMessage(toRoom: room_id, text: message, completion: { response in })

Parameters:

NameTypeDescriptionRequired

room_id

string

room id

true

message

string

message content string

true

Send image

client?.sendMessage(toRoom: room_id, messageType: .image, content: <#T##[String : Any]#>, completion: { response in
	<#code#>
})

Parameters:

NameTypeDescriptionRequired

room_id

string

room id

true

content

json

message content string

true

Listen for messages

var session:MXSession?
    func event_dispatcher(){
        self.session?.start{ response in
            guard response.isSuccess else {
                print("sync envnt failed")
                return
            }
            self.session?.listenToEvents(){ event, direction, customObject in
                switch direction {
                case .forwards:
                    // Live/New events come here
                    if  event.eventId != nil{
                        switch event.wireType{
                            // Got an message from other user.
                        case kMXEventTypeStringRoomMessage:
                            let msg = event.content["body"] as! String
                            print("got message: ", msg, " from: ", event.sender!, "at time: ", event.ageLocalTs)
                            // Send a receipt, then the message won't send again.
                            self.client?.sendReadReceipt(toRoom: event.roomId, forEvent: event.eventId){ response in }
                            if event.sender != self.user_id && msg == "ping" {
                                self.client?.sendTextMessage(toRoom:event.roomId, text: "pong"){ response in
                                    switch response{
                                    case .success(let data):
                                        print("response data: ", data)
                                        break
                                    case .failure(let error):
                                        print(error);
                                    }
                                }
                            }
                            break;
                            
                            // Room event.
                        case kMXEventTypeStringRoomMember:
                            let ms = event.content["membership"] as! String
                            if  ms == "invite"{
                                // Invited by a user.
                                print("invited to room: \(event.roomId!) by user: \(event.sender!)")
                                
                            }else if ms == "join"{
                                print("join the room: ", event.roomId)
                            }
                            break;
                        default:
                            print("room event: ", event.roomId, event.eventType, event.type, event.content)
                        }
                    }else{
                        print("room event: ", event)
                    }
                    break
                    
                case .backwards:
                    print("get event backwards: ", event)
                    // Events that occurred in the past will come here when requesting pagination.
                    // roomState contains the state of the room just before this event occurred.
                    break
                }
            }
        }
    }

Last updated