前端 websocket 长连接

websocket 是什么?

websocket 是一种通信协议,只需一次http握手就可以建立持久连接,并且能进客户端与服务端行双向通信,它允许服务端主动给客户端推送消息。

websocket 如何建立?

websocket 是现代浏览器的一个内置对象,通过一个构造函数 new Websocket(url) 便可建立连接
例:
image

webSocket 4个状态:

1、ws.onopen()连接成功
2、ws.onclose()连接关闭
3、ws.onerror()连接出错
4、ws.onmessage()服务器返回信息解析

方法:

1、ws.send()发送信息
2、ws.close()关闭连接

在Vue中使用

data(){
	retrun {
		ws: null, // WebSocket实例
		time: 5000, // 计时器时间
	}
},
created(){
	this.initWebSocket()
},
methods:{
	initWebSocket(){
		if (window.WebSocket){
			let ws = new WebSocket('地址')    // 建立连接
			this.ws = ws
			// 服务器连接成功
			ws.onopen = function(){
				console.log('连接成功')
				ws.send('hello') // 给后台发消息
				this.heartbeat() // 开启心跳
			}
			// 服务器连接关闭
			ws.onclose = function(){
				console.log('连接关闭')
			}
			// 服务器连接出错
			ws.onerror = function(){
				console.log('连接出错')
			}
			// 解析信息
			ws.onmessage = function(e){
				console.log(e,'接收数据')
			}
		},
		// 心跳
		heartbeat(){
			setInterval(() => {
            	this.ws.send('心跳')
        	}, this.time);
		}
	}
}

posted @ 2022-10-09 11:27  尼古拉斯-富贵  阅读(1171)  评论(0编辑  收藏  举报