1.0.0 • Published 5 years ago
ehs-chat-client v1.0.0
众望智慧IM服务系统 js-sdk
安装
在浏览器中
直接在html中通过script引用
<script src="/dist/ehsChat.client.js"></script>
在vue中
npm install ehs-chat-client
如何使用
在浏览器中使用
var chatClient = new ehsChatClient('appid', 'token', 'host')
chatClient.onConnected = function() {
console.log('connected')
}
chatClient.onError = function(error) {
console.log(error)
}
chatClient.init()
在vue中使用
在main.js中
import EhsChatClient from 'ehs-chat-client'
const whiteRouteList = ['Login']
router.beforeEach((to, form, next) => {
const userToken = store.getters['user/userToken']
const appId = store.getters['user/appId']
const userId = store.getters['user/userId']
if ((!userToken || !appId || !userId) && whiteRouteList.indexOf(to.name) === -1) {
next({ name: 'Login' })
} else {
if (!Vue.prototype.$ehsChatClient) {
Vue.prototype.$ehsChatClient = new EhsChatClient(appId, userToken)
}
next()
}
})
在聊天应用入口 比如session.vue中初始化
export default {
created () {
const self = this
self.$ehsChatClient.onError = (error) => {
console.log(error)
}
self.$ehsChatClient.onConnected = () => {
// do something
}
self.$ehsChatClient.init()
}
}
API
初始化 SDK
var chatClient = new ehsChatClient('appid', 'token', 'host')
chatClient.onConnected = function() {
console.log('connected')
}
chatClient.onError = function(error) {
console.log(error)
}
chatClient.init()
socket 对象
const socket = chatClient.socket
socket.io 使用方法请参考官方文档
Methods
- init()
- getMessageSessions()
方法说明:获取当前用户的会话列表
chatClient.getMessageSessions().then(sessions => {
console.log(sessions)
//do something
})
- getSessionMessages(sid, limit, lastmsgId)
方法说明:获取会话内的历史消息
参数说明:
sid: 会话ID
limit: 每次请求获取的条数
lastmsgId: 小于次ID的数据,为空则从最新消息开始
chatClient.getSessionMessages(sid, limit, lastmsgId).then(messages => {
console.log(messages)
//do something
}).catch(error => {
console.log(error)
})
- sendPrivateMessage(message)
方法说明:发送单聊消息
参数说明:
message对象说明
{
"senderUserId": "当前发送者用户ID",
"targetId": "接收方用户ID",
"content": "消息内容 参考消息内容对象说明",
"messageType": "消息类型 参考消息类型说明"
}
content说明,暂时支持文字和图片消息
1.文字消息{ "content": "文字消息" }
2.图片消息
{ "content": "图片base64编码", "fullUrl": "图片访问路径" }
chatClient.sendPrivateMessage(message).then(res => { //do something }).catch(error => { console.log(error) })
- sendGroupMessage(message) 方法说明:发送群聊消息
参数说明:参考单聊消息- setMessageSessionRead (sid) 方法说明:设置会话为已读
参数说明:
sid: 会话IDchatClient.setMessageSessionRead(sid).then(() => { //do something }).catch(error => { console.log(error) })
- uploadFile({formData, onProgress}) 方法说明:上传聊天文件(图片,语音等) 参数说明:
formData:FormData对象,放置上传的文件
onProgress:上传进度回调函数const formData = new FormData() formData.append('up_file', File) chatClient.uploadFile({formData, onProgress (percent) { console.log(percent) }}).then(result => { // do something }).catch(error => { console.log(error) })
属性
- onError
socket 发生错误时的回调方法
等同于如下事件:
chatClient.socket.on('error', (error) => {})
- onConnected
socket 连接成功后的回调方法
等同于如下事件:
chatClient.socket.on('connect', () => {})
- onDisconnected
socket 断开连接的回调方法
等同于如下事件:
chatClient.socket.on('disconnect', () => {})
- onMessage
socket 接收到消息后的回调方法
等同于如下事件:
chatClient.socket.on('message', (message) => {})
- isConnected
boolean 判断socket是否已处于连接状态
常量说明
- socketMessageTypes
socket 消息类型,onMessage 回调得到的数据中去判断使用
module.exports = {
USER_MESSAGE: 'user' // 用户消息
}
使用说明:
import EhsChatClient from 'ehs-chat-client' const type = EhsChatClient.socketMessageTypes.USER_MESSAGE
- messageContentTypes 消息内容类型
// 1 文字消息 2语音消息 3图片消息 4文件消息 5位置消息 6自定义消息 module.exports = { TEXT_MESSAGE: 1, VOICE_MESSAGE: 2, IMAGE_MESSAGE: 3, FILE_MESSAGE: 4, LOCATION_MESSAGE: 5, CUSTOM_MESSAGE: 6 }
使用说明:
import EhsChatClient from 'ehs-chat-client' const type = EhsChatClient.messageContentTypes.TEXT_MESSAGE
- conversationTypes 会话类型
module.exports = { PRIVATE: 1, // 单聊 GROUP: 2 // 群聊 }
使用说明:
import EhsChatClient from 'ehs-chat-client' const type = EhsChatClient.conversationTypes.PRIVATE
1.0.0
5 years ago