当前位置: 首页 > 后端技术 > Node.js

学习WebSocket(附:WebSocket+koa实例)

时间:2023-04-03 20:23:22 Node.js

原文地址github项目地址1.什么是WebSocket?WebSocket是一种通过单个TCP连接进行全双工通信的协议。它使客户端和服务器之间的数据交换更加容易,让服务器主动向客户端推送数据。在WebSocketAPI中,浏览器和服务器只需要完成一次握手,两者之间就可以直接建立持久连接,进行双向数据传输。2.优点(参考wiki)WebSocket与HTTP对比图客户端示例constws=newWebSocket('ws://localhost:8888');ws.onopen=()=>{console.log('WebSocketonopen');}ws.onmessage=e=>{console.log('WebSocketonmessage');console.log('收到的WebSocket消息:',e);console.log('接收到WebSocket数据:',e.data);}ws.onclose=e=>{console.log("WebSocketonclose");};WebSocket.onopen:连接成功时调用WebSocket.onmessage:收到服务器消息时调用WebSocket.onclose:连接关闭后调用服务器Example(koa)constKoa=require('koa');constWebSocket=require('ws');constapp=newKoa();constws=newWebSocket.Server({端口:8888});ws.on('connection',ws=>{console.log('serverconnection');ws.on('message',msg=>{console.log('serverreceivemsg:',msg);});ws.send('来自服务器的信息');});app.listen(3000);操作结果客户端服务器名词解释握手:一般创建一个WebSocket链接,需要通过浏览器发送请求,服务器响应,这个过程称为LinkWebSocket协议,供《握手》参考:5分Zhong从入门到精通MDN