websocket断网消息补发
注册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弹框消息了。