Websocket
Websocket介绍
Websocket是一种协议,与http协议类似,这两种协议用于客户端与服务器端之间的通信。
但是,Websocket与http是有差别的。
我们常用的http与服务器端通信是有限制的,服务器端不能主动向客户端发送数据。
客户端发送请求,服务器响应请求,服务器无法主动向客户发送数据。
websocket可以使服务器端主动向客户端通信
websocket使用
单单看理论介绍是不能更好的了解websocket。
websocket协议正因为服务器可以向用户端主动发信息,所以在聊天应用上使用的比较多。
当然http也可以实现聊天应用,那就是使用轮询。
轮询——客户端每隔一段时间就向服务器端发请求,使得客户端能实时获取到服务器端最新的数据。
1、创建websocket对象(重要,必须先创建websocket对象)
let ws=new WebSocket("这里填服务器端执行websocket应用的路径");//例如:ws://127.0.0.1:8111
//在协议上就可以看到与http请求的差别。
2、客户端与服务器建立链接时执行——open事件
ws.addEventListener("open",()=>{
console.log("与服务器链接");
});
3、客户端发送消息——send事件
ws.send("你好,服务器");//使用send就可以向服务器端发信息
4、客户端接收服务器端发送的消息——message事件
ws.addEventListener("message",(content)=>{
console.log("content就是服务器端发过来的消息:"+content);
})
5、客户端主动关闭与服务器端的链接——close事件
ws.close();//客户端主动关闭与服务器端的链接
6、客户端关闭与服务器端的链接后执行——close事件
ws.addEventListener("close",()=>{
console.log("客户端关闭链接后执行该回调");
});
7、客户端与服务器端链接异常——error事件
ws.addEventListener("error",(err)=>{
console.log(err);
});
error事件需要注意的是,当链接异常,会执行error事件,但是close事件也会跟着触发。
概括:
websocket事件 | 介绍 |
---|---|
open | 客户端与服务器端链接 |
send | 客户端主动向服务器端发信息 |
message | 客户端接收服务器端消息 |
close | 客户端主动与服务器端关闭链接 |
close | 客户端与服务器端关闭链接时执行 |
error | 客户端与服务器端链接异常 |
Tips:
服务器端小编用的是node.js较多,所以创建websocket应用用的模块叫:nodejs-websocket