GoBelieve JS IM SDK接入备忘

类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

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

GoBelieve Android SDK接入备忘

Android SDK版本 目前SDK只支持Android 2.2或以上版本的手机系统. AndroidManifest.xml配置 以下配置可以在IMDemo/AndroidManifest.xml 找到并直接拷贝放置进自己的应用工程中的AndroidManifest.xml文件对应的tag中. manifest 标签下添加: <!-- 必需: 权限配置 --> <uses-permission android:name="android.permission.INTERNE

GoBelieve IOS SDK接入备忘

项目配置 在工程target的"Build Settings"中,找到"Linking"的"Other Linker Flags",添加参数-ObjC. IMSDK imsdk只包含消息基础通讯功能 初始化IM 启动im服务只需要设置用户的access token,调用启动接口并添加消息的监听对象. [IMService instance].deviceID = [[[UIDevice currentDevice] identifierForVe

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

1 (function ($) { 2 $.validator.unobtrusive.parseDynamicContent = function (selector) { 3 //use the normal unobstrusive.parse method 4 //$.validator.unobtrusive.parse(selector); changed this line with 5 6 $(selector).find('*[data-val = true]').each(f

js中常用属性备忘

. onsubmit一般用来做验证的,用来控制表单提交的. 之前使用数据提交基本上使用ajax做数据提交,在数据验证的时候,只有通过数据验证之后,才会post/get数据到对应api文件,但是这次涉及图片上传,只能使用form表单提交,但是这前台js判断的时候出现问题.就是在js验证之后,form表单自动提交. 如何防止表单自动提交? <form name="form1" onsubmit="return check()" method="post&

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

基于JS学习的正则表达式 备忘 e.g.匹配以0开头的三位或四位区号,以-分格的7或8位电话号码var reg1 = /^0\d{2,3}\-\d{7,8}$/;或var reg1 = new RegExp('^0\\d{2,3}\\-\\d{7,8}$') ; reg1.test('010-1234567');reg1.test('010-12345678');reg1.test('0531-1234567');reg1.test('0531-12345678'); 第一种写法更简洁! #使用

P2.JS之触碰材质(ContactMaterial)备忘

关键代码: 1 boxShape.material = new p2.Material(); 2 platformShape.material = new p2.Material(); 3 4 var material = new p2.ContactMaterial(boxShape.material, platformShape.material, { 5 surfaceVelocity: -50, 6 restitution: 0.5, 7 friction: 0.3, 8 stiffne

P2.JS之距离约束(DistanceConstraint)备忘

关键代码: 1 //以下是地面和墙壁的代码 2 //下 3 var body = new p2.Body({ mass: 0, position: [0, -5]}); 4 var shape = new p2.Plane(); 5 body.addShape(shape); 6 world.addBody(body); 7 8 //右 9 body = new p2.Body({ angle: Math.PI / 2, mass: 0, position: [10, 0]}); 10 body

ajax调用本页js【备忘】

备忘

AngularJS之备忘与诀窍

译自:<angularjs> 备忘与诀窍 目前为止,之前的章节已经覆盖了Angular所有功能结构中的大多数,包括指令,服务,控制器,资源以及其它内容.但是我们知道有时候仅仅阅读是不够的.有时候,我们并不在乎那些功能机制是如果运行的,我们仅仅想知道如何用AngularJS去做实现一个具体功能. 在这一章中,我么视图给出完整的样例代码,并且对这些样例代码仅仅给出少量的信息和解释,这些代码解决是我们在大多数Web应用中碰到的通用问题.这些代码没有具体的先后次序,你尽可以跳到你关心的小节先睹为快或者