前端 websocket 的简单使用

websocket创建实例, 监听事件

if (window.WebSocket){
	let ws = new WebSocket('地址')    // 建立连接
	ws.onopen = function(){ }        // 服务器连接成功
	ws.onclose = function(){ }       // 服务器连接关闭
	ws.onerror = function(){ }       // 服务器连接出错
	ws.onmessage = function(){ }     // 解析信息
}

属性

ws.readyState
// 0 正在链接中
// 1 已经链接并且可以通讯
// 2 连接正在关闭
// 3 连接已关闭或者没有链接成功
ws.url
// 是一个只读属性
//返回构造函数创建WebSocket实例对象时URL的绝对路径。

方法

ws.send() // 发送请求
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);
		}
	}
}
前端websocket是一种在浏览器和服务器之间实现双向通信的协议。它使用WebSocket API建立起浏览器和服务器之间的持久连接,使得服务器能够主动向浏览器发送数据,而不需要浏览器每次都发送请求。通过发送心跳消息来保持连接的稳定性,当服务器收到心跳消息后,可以回复一个消息给前端,如果前端没有收到回复,则可以进行重连操作来确保WebSocket保持连接状态。通过WebSocket的open事件来监听连接的建立,一旦连接建立成功,就可以执行心跳方法,保持连接的稳定性。 WebSocket协议相对于传统的HTTP协议有很多优势,比如实时性更好、减少了网络传输的开销、支持双向通信等。因此,在前端开发中,WebSocket被广泛应用于实时聊天、实时更新等场景。通过WebSocket API,可以简单地实现与服务器的双向通信,并且可以与其他前端框架或库(如Vue、React)进行集成,从而实现更丰富的功能和交互体验。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【前端websocket 讲解与项目中的使用(附源码)](https://blog.csdn.net/csdn_yudong/article/details/118311227)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值