类IMService
构造函数
参数说明:
* `observer` 回调对象(可选)
设置当前用户的access token
属性名:String accessToken
功能:在调用start之前必须要设置用户的accessToken,token是由第三方应用服务器调用IM服务器RestAPI所得。
开始接受消息
方法名:start
功能:用户登陆成功后,连接im服务器来接受在线消息。
返回值:无返回值
停止接受消息
方法名:stop
功能:用户注销后,断开和im服务器的连接,从而终止接受在线消息。
返回值:无返回值
发送消息
方法名: sendPeerMessage
功能:发送im消息,如果当前连接处于断开状态,消息会发送失败, 函数返回YES,也不能表明服务器已经接收到消息。
参数说明:
*msg 消息对象
返回值:bool返回值
IMService Observer
onConnectState
功能:连接状态变更通知
参数说明:
* state 连接状态
消息
方法名: handlePeerMessage
功能:接受到一条im消息
参数说明:
*msg 消息对象
返回值:无返回值
消息ACK
方法名: handleMessageACK
功能:服务器对收到消息的ack,此时这条消息才能标志为发送成功
参数说明:
*msgLocalID(`Number`) 消息的本地ID
*uid(`Number`) 消息接受者
返回值:无返回值
消息接受者ACK
方法名: handleMessageRemoteACK
功能:消息已经被对端接收到。
参数说明:
*msgLocalID(`Number`) 消息的本地ID
*uid(`Number`) 消息接受者
返回值:无返回值
消息发送失败
方法名: handleMessageFailure
功能:消息发出后,未收到服务器的ack,在和服务器的连接断开后,会通知消息发送失败。
参数说明:
*msgLocalID(`Number`) 消息的本地ID
*uid(`Number`) 消息接受者
返回值:无返回值
example
<script src="/engine.io.js"></script> <script src="/json2.js"></script> <script src="/im.js"></script> <script> var observer = { handlePeerMessage: function (msg) { console.log("msg sender:", msg.sender, " receiver:", msg.receiver, " content:", msg.content, " timestamp:", msg.timestamp) }, handleMessageACK: function(msgLocalID, receiver) { console.log("message ack local id:", msgLocalID, " receiver:", receiver) }, handleMessageFailure: function(msgLocalID, receiver) { console.log("message fail local id:", msgLocalID, " receiver:", receiver) }, 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"); } }, onReset: function() { console.log("reset"); } } var im = new IMService(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) </script>
时间: 2024-10-17 04:52:16