Node.Js篇 — 关于WebSocket

目录

介绍

心跳机制

断线重连

服务器端模块与使用

客户端连接及代码


介绍

网络上的两个程序通过一个双向的通信连接实现数据交互,这个连接的一端称之为socket。所以建立网络通信连接至少要一对socket。

socket主要解决的是页面之间长连接和数据交互的问题。


心跳机制

‘防止客户端和服务器端长时间没有通讯,每隔几秒会自动向客户端发送一个不相关的消息告诉对方我还活着,socket模块是没有的心跳机制的,实现心跳机制代码需要开发者自己去完成’

客户端每隔一段时间向服务端发送一个特有的心跳消息,每次服务端收到消息后只需将消息返回,此时,若二者还保持连接,则客户端就会收到消息,若没收到,则说明连接断开,此时,客户端就要主动重连,完成一个周期


断线重连

客户端和服务端如果长时间没有通讯,浏览器及服务器会出于安全和性能的考虑,会自动把连接断开 。如客户端发送了消息,服务器端未返回数据则认定为断开连接,这时会触发socket中的onclose事件需要重新连接


服务器端模块与使用

npm install ws //安装模块
var WebSocketServer=require('ws').Server //使用ws模块并使用他的server方法
wss = new WebSocketServer( {port:8081} ) //创建实例并起端口号8081
//监听连接 有用户连接了服务器就会触发此函数,ws表示用户的属性(单个用户)
wss.on('connection',(ws)=>{    
    console.log("有用户连接服务器了....") 
    ws.on( 'message',(data)=>{//监听客户端发来的数据
        console.log("客户端发来的数据:",data)
    } )
})

客户端连接及代码

var ws = new WebSocket('ws:127.0.0.1:8080/') //与服务器端建立连接
var str = input.value
ws.send(str) //往服务器发送数据
ws.onmessage=e=>{ //接收服务器发过来的数据
    var data = e.data
}
ws.onopen=()=>{
    console.log('hello')
}

1.onopen方法:当服务器响应了WebSocket连接请求,那么open事件触发并且建立一个连接,    open事件对应的回调函数就是onopen。

2.onmessage方法:接收到消息时触发

3.onclose方法:在WebSocket连接关闭的时候触发,对应的回调函数是onclose。一旦连接关闭,那么客户端或者服务器就不再能接收或者发送信息。

4.onerror方法:在响应意外故障的时候触发,对应的回调函数是onerror。错误还会导致WebSocket连接关闭。

5.send方法:向服务端发送数据

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的白银时代

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值