# 消息
## 得到会话ID
```
// type group/user
// id groupid/recver_user_id
IM.getChatId(type,id);
```
## 会话消息
```
// 获得会话列表
IM.listChat();
// 获得会话
IM.getChat(chatId);
// 打开会话
IM.openChat(chatId, callback)
```
## 发送消息
### 创建本地消息
```
// msgtype 消息类型
// text
:纯文本 image:图片 voice:录音 shoot:小视频 file:文件 location:定位
// data 消息内容
// msgtype为text时,data为发送的文本信息
// msgtype为 image、voice、shoot、file时,data为发送的文件内容,IM.uploadFile中callback(result)返回内容result.data
// msgtype为location时,data为位置信息
// chat 会话对象
IM.createMessage
(msgtype, data, chat);
```
### 发送文本消息
```
// text:纯文本内容
// chatId:会话ID
IM.sendTextMessage(text, chatId);
```
### 发送附件消息
#### 附件包含:图片、文件、音频、视频
```
// 上传文件
// formData 表单对象 new FormData()
// callback(result) 回调函数 result.data为附件消息所需的文件信息
IM.uploadFile(formData, callback);
// msg:消息对象 通过IM.createMessage()生成
// file:文件对象 {fileid:"", name:"", size:"", url_thumbpic:"", url_original:""}
// chat:会话对象
IM.sendAttachMessage(msg, file, chat);
```
### 发送位置消息
```
// var data = {
// "longitude":"120.13026",
// "latitude":"30.25961",
// "address":"杭州市西湖区教工路120号",
// "name":"求是大厦"
// };
// chatId:会话ID
IM.sendLocationMessage(data, chatId);
```
## 接收消息
接收消息在SDK中自动处理,会激发 onNewMessage事件
### 离线消息
```
// 个人离线消息
IM.getOfflineMsg();
// 群组离线消息
IM.getOfflineGroupMsg();
```
### 新消息提示
```
// 新消息监听 view中可单独增加监听事件
IM.events.addHandler("onMessageNew",this.onMessageNew);
// 收到新的消息
this.onNewMessage = function(msg){
// 处理新消息
}
```
### 消息回执
```
//设置消息已读
IM.setReadedByMsg(msg);
```