在讲这个之前,有许多小伙伴问过我,网页长链接和短链接,还有http是不是短连接…
- 其实浏览器默认是长链接的,只是你在后端引入http以后,从长链接变为短链接,这么说可能不太严谨。那我换个说法,http阻拦了默认的长链接,你可以理解他为分割器,至于为什么要特意的改为短链接。。。。
答案是节省服务端资源,缓解压力
这里给大家简单说一下webSocket的具体作用
WebSocket
可以实现客户端与服务端之间数据的实时通信。(长连接)
网络通信过程中的长连接与短连接
长连接:客户端向服务端发请求建立连接,一旦建立成功,客户端就可以像服务端发送请求数据,服务端接收并且处理,返回响应后连接不断开。
优点:实现实时通信。客户端服务端随时随地向对方发消息。
短连接:客户端向服务端发请求建立连接,一旦建立成功,客户端就可以像服务端发送请求数据,服务端接收并且处理,返回响应后连接立即断开。若想重新发送请求,则需要重新建立连接。
优点:节省服务端资源。
如何使用代码建立客户端与服务端之间的websocket
连接并实现通信?
socket.io
socket.io
是一个为浏览器与服务端之间提供实时、双向、基于事件通信的网络通信库(框架)。基于websocket
协议提供了相关的API
,方便的实现客户端与服务端之间的长连接通信。
建立websocket
连接
服务端
-
新建
nodejs
项目目录。socketserver
-
初始化
npm
项目,安装socket.io
模块。npm init # 将会生成package.json npm install --save socket.io
-
编写
index.js
(这个你自己起名app.js啥都行),在代码中通过socket.io
接收客户端建立连接的请求。
// 主js脚本: index.js
// 创建一个http服务器 用于监听端口 接收请求
const http = require('http').createServer()
// 加载socket.io模块,获取socketio对象
// 用于处理接收客户端的websocket连接(它需要http服务器&