JackyTecblog

注册irealtime

首先去irealtime网站注册一个账号,然后创建一个应用,注册过程请参考获取开发者账号和 appkey

创建页面

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>websocket 断网消息补发</title>
    <script type="text/javascript" src="https://irealtime.cn/irealtime-1.0.1.js"></script>
    <script>
    var count = 0;
    var realTime = new IRealTime({
        host: 'hk.irealtime.cn',
        appkey: 'your appkey',    // 您注册的appkey
        onConnected: function() {
            console.log("连接成功...")
        },
        onDisconnected: function() {
            console.log("连接断开...")
        },
        onConnectFailed: function(error) {
            console.log("连接失败...", error)
        }
    });

    // 订阅通道
    realTime.subscribe({
      channels: ['testChannel'],
      onMessage: function(data) {
        console.log(data)
        alert("收到消息:"+data.message)
      },
      onSuccess: function(data) {
          console.log("订阅成功...")
      },
      onFailed: function(error) {
          console.log("订阅失败...")
      }
    });
    
    
    window.onload = function() {
      var el = document.getElementById("button")
      var input = document.getElementById("message")
      el.onclick = function() {
        // 发送消息
        realTime.publish({
          channel: "testChannel", 
          message: input.value,
          onSuccess: function(data) {
            console.log("success:",data)
          },
          onFailed: function(error) {
            console.log("failed:",error)
          }
        })
      }
    }
    
    </script>
  </head>
  <body>
    <input id="message" />
    <button id="button">发送</button>
  </body>
</html>

为了测试断网收发消息的效果,请用两台机器都打开这个页面(一台手机和一台电脑也可以),然后输入内容点击发送,可以看到两个页面都收到了消息(alert弹框)。 然后把一台机器的网络禁用,之后再另一台机器的网页上输入内容点击发送,此时可以看到禁用网络的机器不在弹出alert消息提示框,接下来取消禁用网络(连上网络),过一会发现也就收到了alert弹框消息了。

相关文章: