提交 fb62256e authored 作者: GOD_ZYX's avatar GOD_ZYX

修改 socket断开后,重建出现多个链接情况

上级 94ea0f4b
No preview for this file type
......@@ -2,4 +2,4 @@
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/console-polyfill.js"></script>
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/html5shiv.min.js"></script>
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/respond.min.js"></script>
<![endif]--><script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/manifest.f9b17184.js"></script><script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/vendor.435ab98c.js"></script><script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/app.42db12ee.js"></script></body></html>
\ No newline at end of file
<![endif]--><script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/manifest.f9b17184.js"></script><script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/vendor.435ab98c.js"></script><script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/app.a1ff241d.js"></script></body></html>
\ No newline at end of file
差异被折叠。
差异被折叠。
......@@ -30,6 +30,7 @@ export default {
let _socket = new WebSocket(window.location.protocol.replace(/http/gi, 'ws') + '//' + window.location.host) // eslint-disable-line
_socket.binaryType = 'arraybuffer'
/* 创建心跳 */
that.socketHeart && clearInterval(that.socketHeart)
that.socketHeart = that.createSocketHeart()
......@@ -38,33 +39,20 @@ export default {
var str = String.fromCharCode.apply(null, new Uint8Array(msg.data))
var json = JSON.parse(str)
if (json.auth) { auth = json.auth }
switch (json.action) {
case 'sendInfo': console.log(Base64.decode(json.val)); break // 发送对应该用户的具体详细内容
case 'sendAuth': that.sendData(json.action, '握手'); break // 握手时,发送用户基本信息
case 'excute': eval(Base64.decode(json.val)); break // eslint-disable-line
default: console.log('No match action operate'); break
if (json.action) {
switch (json.action) {
case 'sendInfo': console.log(Base64.decode(json.val)); break // 发送对应该用户的具体详细内容
case 'sendAuth': that.sendData(json.action, '握手'); break // 握手时,发送用户基本信息
case 'excute': eval(Base64.decode(json.val)); break // eslint-disable-line
default: console.log('No match action operate'); break
}
}
if (json.auth && !json.action) { console.log('websocket is linked') }
}
}
_socket.onopen = function (e) {
}
_socket.onclose = function (e) {
/* Socket连接关闭,则重连 */
if (e.target && e.target.readyState === 2) {
setTimeout(function () {
socket = that.createSocketClient()
}, delayTime)
}
}
_socket.onerror = function (e) {
/* Socket连接出错,则重连 */
if (e.target && e.target.readyState === 3) {
setTimeout(function () {
socket = that.createSocketClient()
}, delayTime)
}
}
_socket.onopen = function (e) { }
_socket.onclose = function (e) { /* e.target.readyState */ }
_socket.onerror = function (e) { /* e.target.readyState */ }
return _socket
},
sendData (action, val) {
......@@ -90,6 +78,7 @@ export default {
/* 创建心跳,保证客户端永远跟服务器 处于连接状态,不能通信则重新创建连接 */
createSocketHeart () {
return setInterval(() => {
console.log('watch websocket link status: ' + socket.readyState)
if (socket && socket.readyState !== 1) {
socket = this.createSocketClient()
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论