IM JS SDK
demo地址
类IMService
构造函数
参数说明:
* `observer` 回调对象(可选)
设置当前用户的access token
属性名:String accessToken
功能:在调用start之前必须要设置用户的accessToken,token是由第三方应用服务器调用IM服务器RestAPI所得。
开始接受消息
方法名:start
功能:用户登陆成功后,连接im服务器来接受在线消息。
返回值:无返回值
停止接受消息
方法名:stop
功能:用户注销后,断开和im服务器的连接,从而终止接受在线消息。
返回值:无返回值
发送点对点消息
方法名: sendPeerMessage
功能:发送点对点消息,如果当前连接处于断开状态,消息会发送失败, 函数返回YES,也不能表明服务器已经接收到消息。
参数说明:
*msg 消息对象
返回值:bool返回值
发送群组消息
方法名: sendGroupMessage
功能:发送群组消息,如果当前连接处于断开状态,消息会发送失败, 函数返回YES,也不能表明服务器已经接收到消息。
参数说明:
*msg 消息对象
返回值:bool返回值
IMService Observer
onConnectState
功能:连接状态变更通知
参数说明:
* state 连接状态
消息
方法名: handlePeerMessage
功能:接受到一条im消息
参数说明:
*msg 消息对象
返回值:无返回值
消息ACK
方法名: handlePeerMessageACK
功能:服务器对收到消息的ack,此时这条消息才能标志为发送成功
参数说明:
*msg 消息对象
返回值:无返回值
消息发送失败
方法名: handlePeerMessageFailure
功能:消息发出后,未收到服务器的ack,在和服务器的连接断开后,会通知消息发送失败。
参数说明:
*msg 消息对象
返回值:无返回值
消息
方法名: handleGroupMessage
功能:接受到一条im消息
参数说明:
*msg 消息对象
返回值:无返回值
消息ACK
方法名: handleGroupMessageACK
功能:服务器对收到消息的ack,此时这条消息才能标志为发送成功
参数说明:
*msg 消息对象
返回值:无返回值
消息发送失败
方法名: handleGroupMessageFailure
功能:消息发出后,未收到服务器的ack,在和服务器的连接断开后,会通知消息发送失败。
参数说明:
*msg 消息对象
返回值:无返回值
群组通知消息
方法名: handleGroupNotification
参数说明:
*msg 通知消息内容
返回值:无返回值
example
var observer = {
handlePeerMessage: function (msg) {
console.log("peer msg:", msg);
},
handlePeerMessageACK: function(msg) {
console.log("message ack");
},
handlePeerMessageFailure: function(msg) {
console.log("message fail");
},
handleGroupMessage: function(msg) {
console.log("group message:", msg);
},
handleGroupMessageACK(msg) {
},
handleGroupMessageFailure(msg) {
},
handleGroupNotification(msg) {
},
onConnectState: function(state) {
if (state == IMService.STATE_CONNECTED) {
console.log("im connected");
} else if (state == IMService.STATE_CONNECTING) {
console.log("im connecting");
} else if (state == IMService.STATE_CONNECTFAIL) {
console.log("im connect fail");
} else if (state == IMService.STATE_UNCONNECTED) {
console.log("im unconnected");
}
},
}
var im = new IMService();
im.observer = observer;
im.peerMessageObserver = observer;
im.accessToken = "????";
im.start()
var msg = {sender:100, receiver:200, content:"11", msgLocalID:1000}
//connectState == STATE_CONNECTING
var r = im.sendPeerMessage(msg);
//r == false
console.log("send message result:", r);
function send() {
var msg = {sender:100, receiver:100, content:"11", msgLocalID:1000}
if (im.connectState == IMService.STATE_CONNECTED) {
im.sendPeerMessage(msg);
}
}
setTimeout(send, 2000)
调用客服页面
//从应用自己的服务器获取当前用户id以及token
//appid:当前应用id
//uid:当前用户id
//appname:当前应用名称
//name:当前用户昵称
//token:连接im服务器需要的token
//storeid:商店id,可选参数
//storename:商店名称,可选参数
var msg = {
appid: 7,
uid: 1,
appname: "demo",
name: "test",
token: token,
storeid: 7,
storename: "淘宝小店"
};
var url = 'https://gobelieve.io/customer.html?session=xdfakdfjs';
var w = window.open(url, "_blank");
var onMessage = function(event) {
console.log("on message:", event);
//客服页面load完成
if (event.data === 'ready') {
w.postMessage(msg, "*");
console.log("post customer message:", msg);
}
}
window.addEventListener("message", onMessage, false);