====== 消息 ======
===== 发送消息 =====
Unity SDK支持发送文本消息和文件消息两种格式的消息(单聊和群聊通用,只是一个参数的差别)。
==== 发送文本 ====
sendTxtMessageBtn.onClick.AddListener (delegate() {
EMBaseCallback cb = new EMBaseCallback();
cb.onSuccessCallback = () => {
logText.text = "send message success";
};
cb.onProgressCallback = (progress,status) => {};
cb.onErrorCallback = (code,message) => {};
EMClient.Instance.SendTextMessage(txtContent.text, toUser.text, ChatType.Chat, cb);
});
==== 发送文件消息 ====
sendFileMessageBtn.onClick.AddListener (delegate() {
if(filePath.text.Length > 0){
EMBaseCallback cb = new EMBaseCallback();
cb.onSuccessCallback = () => {
logText.text = "send file success";
};
cb.onProgressCallback = (progress,status) => {};
cb.onErrorCallback = (code,msg) => {};
EMClient.Instance.SendFileMessage(filePath.text,toUser.text,ChatType.Chat,cb);
}
});
===== 接收消息 =====
Unity SDK通过继承实现EMMessageListenerCallback类来完成消息的接收处理。
private void setMessageRecvListener()
{
EMMessageListenerCallback receiveMessageCallback = new EMMessageListenerCallback();
receiveMessageCallback.onMessageReceivedCallback = (msgs) => {
logText.text = "from ";
foreach(EMMessage msg in msgs) {
logText.text += msg.mFrom;
if(msg.mType == MessageType.TXT) {
logText.text += ",content="+msg.mTxt+",ext="+msg.ext;
}
if(msg.mType == MessageType.IMAGE) {
rawImage.gameObject.SetActive(true);
rawImage.GetComponent().loadPic(msg.mRemotePath);
}else{
rawImage.gameObject.SetActive(false);
}
if(msg.mType == MessageType.VOICE || msg.mType == MessageType.FILE) {
logText.text += msg.mRemotePath;
EMBaseCallback cb = new EMBaseCallback();
cb.onSuccessCallback = () => {
logText.text = "recv file success:" + msg.mLocalPath;
};
cb.onProgressCallback = (progress,status) => {};
cb.onErrorCallback = (code,msg1) => {
logText.text = "recv file failure:" + msg.mLocalPath;
};
EMClient.Instance.DownloadAttachment(msg.mFrom, msg.mMsgId, cb);
}
}
};
receiveMessageCallback.onMessageReadAckReceivedCallback = (msgs) => {};
receiveMessageCallback.onMessageDeliveryAckReceivedCallback = (msgs) => {};
receiveMessageCallback.onMessageChangedCallback = (msgs) => {};
receiveMessageCallback.onCmdMessageReceivedCallback = (msgs) => {};
EMClient.Instance.receiveMessageCallback = receiveMessageCallback;
}
----
上一章节:[[im:unitysdk:basic|Unity SDK基础功能]]
下一页:[[im:unitysdk:group|群组管理]]