WebSocket介绍
| 作用 | WebSocket是一种在单个TCP连接上进行全双工通信的协议。 |
|---|---|
| 功能 | WebSocket使得客户端和服务器之间的数据交换变得更加简单 |
| 除此之外我们还有其他一些方法(纯前端js实现) | |
| 1 长轮询 | 前端使用ajax进行接口数据的查询(持续不断的查询) 如果读取到服务器上边有最新的数据 立马返回给前端 缺点:内存消耗太大 对服务器不友好 优点:服务器一旦有最新 立马返回 |
| 2 短轮询 | 每隔固定的时间请求一次 例如每个一个小时 请求一次服务器 如果读取到服务器上边有最新的数据 立马返回给前端 优点:内存消耗不大 缺点:不能快速实时的讲服务器上边最新的消息给你立马返回 |
| websocket中 | |
| 使用onopen连接websocket服务 使用onmessage监听websocekt服务器返回数据 使用send发送数据给websocket服务器 |
使用socket.io实现websocket双向通信
| 我们在开发项目过程中为了更加方便的进行socket调用 我们自己可以创建一个服务 | |
|---|---|
| 这个时候我们需要安装引入socket.io | 1 使用npm 安装下载socket.io 服务端使用 npm i socket.io |
| 2 可以直接引入socket.io.js文件 客户端使用 socket.io分为客户端和服务端 引入socket.io.js这是一个客户端脚本 现在我们还需要一个服务端的io |
|
| 步骤: | |
| 1 在页面中需要引入socket.io.js文件 | |
| 2 需要使用nodejs创建一个socket服务 | 首先使用npm安装socket.io安装包 npm i socket.io —save-dev |
| 创建server.js文件 | const http=require(“http”).createServer(); const io=require(“socket.io”)(http); io.on(‘connection’, (socket)=> { // 创建socket连接 console.log(‘a user connected’) socket.on(‘send’, function(e) { console.log(1111,e) io.sockets.emit(‘recive’,e) }) socket.on(‘reply’, function(e) { console.log(2222,e) io.sockets.emit(‘recive1’,e) }) }) http.listen(3000, ()=> { // 端口号可以自定义 console.log(‘listening on 3000’) }) 我们可以使用socket.on(“自定义名称”) 来监听客户端发送数据 使用socket.emit(“自定义名称”, 要发送的数据) 来将数据发送给服务器 emit和on里边自定义名称需要一致 这个时候才能实现一个发送 一个监听 我们可以使用io.sockets.emit向所有的用户广播数据 |
| 3 启动服务 node server.js | |
| 4 在客户端页面中可以使用 | var socket=io(“http://localhost:3000“); 使用socket.on(“自定义名称”,function(e) { // e对应就是接受的数据 }) 来进行数据的接收 使用 socket.emit(“自定义名称”,要发送的数据)向socket服务器发送数据 |
通过nodejs搭建环境
| 使用nodejs-websocket来实现双向通信 | |
|---|---|
| 通过nodejs搭建环境 1 安装 |
npm i nodejs-websocket —save-dev |
| 2 创建server.js文件 并在文件中进行配置 | var ws=require(“nodejs-websocket”) var server = ws.createServer(function (conn) { console.log(“New connection”) conn.on(“text”, function (str) { console.log(“Received “+str) conn.sendText(str.toUpperCase()+”!!!”) }) conn.on(“close”, function (code, reason) { console.log(“Connection closed”) }) }).listen(8001) |
| 3 运行服务 | node server.js |
使用步骤
| 1.新建socket文件夹 | npm init |
|---|---|
| 2.安装socket.io | npm i socket.io —save-dev |
| 3.在socket中创建server.js文件 | |
| 4.执行命令 | node server.js |
<br /> <br />
