Message
Send text message
client?.sendTextMessage(toRoom: room_id, text: message, completion: { response in })
Parameters:
Name
Type
Description
Required
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:
Name
Type
Description
Required
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