类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>

GoBelieve JS IM SDK接入备忘的更多相关文章

  1. GoBelieve Android SDK接入备忘

    Android SDK版本 目前SDK只支持Android 2.2或以上版本的手机系统. AndroidManifest.xml配置 以下配置可以在IMDemo/AndroidManifest.xml ...

  2. GoBelieve IOS SDK接入备忘

    项目配置 在工程target的"Build Settings"中,找到"Linking"的"Other Linker Flags",添加参数 ...

  3. js中常用属性备忘

    . onsubmit一般用来做验证的,用来控制表单提交的. 之前使用数据提交基本上使用ajax做数据提交,在数据验证的时候,只有通过数据验证之后,才会post/get数据到对应api文件,但是这次涉及 ...

  4. .net MVC内置js验证 jquery.validate.unobtrusive.js重置验证操作(备忘,找了很多次了)

    (function ($) { $.validator.unobtrusive.parseDynamicContent = function (selector) { //use the normal ...

  5. 正则表达式备忘(基于JavaScript)

    基于JS学习的正则表达式 备忘 e.g.匹配以0开头的三位或四位区号,以-分格的7或8位电话号码var reg1 = /^0\d{2,3}\-\d{7,8}$/;或var reg1 = new Reg ...

  6. 微信JS SDK接入的几点注意事项

    微信JS SDK接入,主要可以先参考官网说明文档,总结起来有几个步骤: 1.绑定域名:先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”.备注:登录后可在“开发者中心”查看对 ...

  7. AngularJS之备忘与诀窍

    译自:<angularjs> 备忘与诀窍 目前为止,之前的章节已经覆盖了Angular所有功能结构中的大多数,包括指令,服务,控制器,资源以及其它内容.但是我们知道有时候仅仅阅读是不够的. ...

  8. Nmap备忘单:从探索到漏洞利用(Part 4)

    这是我们的Nmap备忘单的第四部分(Part 1. Part 2. Part 3).本文中我们将讨论更多东西关于扫描防火墙,IDS / IPS 逃逸,Web服务器渗透测试等.在此之前,我们应该了解一下 ...

  9. Socket网络通讯开发总结之:Java 与 C进行Socket通讯 + [备忘] Java和C之间的通讯

    Socket网络通讯开发总结之:Java 与 C进行Socket通讯 http://blog.sina.com.cn/s/blog_55934df80100i55l.html (2010-04-08 ...

随机推荐

  1. 【linux】netstat 详解

    Linux netstat命令用于显示网络状态. 利用netstat指令可让你得知整个Linux系统的网络情况. 在Internet RFC标准中,Netstat的定义是: Netstat是在内核中访 ...

  2. bootstrap-fileinput参数

    <link rel="stylesheet" href="css/bootstrapCSS/bootstrap.min.css"> <link ...

  3. ADO.NET教程(1)初识ado.net

    ADO.NET简介 ADO.NET使用到的类 需掌握的方法和属性 ado.net连接实例 ADO.NET的名称起源于ADO(ActiveX Data Objects),是一个COM组件库,用于在以往的 ...

  4. linq之Capacity(转载)

    出处:博客园 作者:mumuliang 连接:http://www.cnblogs.com/mumuliang/p/3914425.html Capacity 在.NET中List的容量应该只是受到硬 ...

  5. javaSE练习13——(知识点:类的继承 方法的覆盖)

    设计2个类,要求如下: (知识点:类的继承 方法的覆盖)1.定义一个汽车类Vehicle, 1.1 属性包括:汽车品牌brand(String类型).颜色color(String类型 )和速度spee ...

  6. android 短期计划

    http://www.jianshu.com/p/2a9fcf3c11e4 http://www.jianshu.com/p/5f6d79323923 activity启动模式: http://www ...

  7. hdu 1513 添最少字回文 (Lcs 滚动数组)

    http://blog.csdn.net/ice_crazy/article/details/8244639 这里5000*5000超出内存,所以需要用滚动数组: 用一个now表示当前的结果,pre表 ...

  8. foreach的基本语法

    有一个布尔型循环是专门用来循环数组的.这个循环的基本语法就是foreach基本语法 foreach( 要循环的数组变量 as [键变量 =>] 值变量){ //循环的内容 } 这是一个固定用法, ...

  9. shell 复制/备份文件 脚本

    #!/bin/sh # author hapday # -- echo "以时间日期为名称基准备份 war 包." date +%Y-%m-%d-%H-%M-%S cp artup ...

  10. Centos6配置samba服务器并批量添加用户和文件夹

    一.需求 局域网内有若干用户,所有用户访问一个共享目录 每个用户在共享目录里有自己的文件夹 每个用户都可以读取其他人的文件夹 每个用户只能对自己的文件夹有写入权限 所有用户都属于filesgroup组 ...