WebSocket 协议是 html5的 一种通信协议,可以使客户端和服务端双向数据传输更加简单快捷,并且在 TCP连接 进行一次握手后,就可以 持久性 连接,同时允许服务端对客户端 推送 数据。
类似于HTTP协议和HTTPS协议的差别
SSL(Secure Socket Layer,安全套接层) 用来保障网络中数据传输的安全性,主要是运用数据加密技术避免数据在传输过程被不被窃取或者监听,旨在确保 Internet 通信中的隐私、身份验证和数据完整性
在高防防护过程中,80和433端口的网站是需要备案才可以接入国内的
http协议下使用ws,在https协议下使用wss
WebSocket协议的特点:
1. 建立在 TCP 协议之上,服务端实现容易;
2. 与 HTTP 协议有良好的兼容性,握手时不容易被屏蔽,可以通过各种 HTTP 代理服务器;
3. 数据轻量,实时通讯;
4. 可以发送文本和二进制数据。
5. 不限制同源,客户端可以与任意服务器端进行通讯。
在服务器的选择上很广,基本上,主流语言都有WebSocket的服务器端实现,而我们作为前端开发工程师,当然要选择现在比较火热的NodeJS作为我们的服务器端环境了。NodeJS本身并没有原生的WebSocket支持,但是有第三方的实现(大家要是有兴趣的话,完全可以参考WebSocket协议来做自己的实现),我们选择了“ws”作为我们的服务器端实现。
由于本文的重点是讲解WebSocket,所以,对于NodeJS不做过多的介绍,不太熟悉的朋友可以去参考NodeJS入门指南(http://www.nodebeginner.org/index-zh-cn.html)。
安装好NodeJS之后,我们需要安装“ws”,也就是我们的WebSocket实现,安装方法很简单,在终端或者命令行中输入:
npm install ws
,等待安装完成就可以了。
接下来,我们需要启动我们的WebSocket服务。首先,我们需要构建自己的HTTP服务器,在NodeJS中构建一个简单的HTTP服务器很简单,so easy。代码如下:
var app = http.createServer(onRequest ).listen( 8888 )
onRequest()作为回调函数,它的作用是处理请求,然后做出响应,实际上就是根据接收的URL,在服务器上查找相应的资源,最终返回给浏览器。
在构建了HTTP服务器后,我们需要启动WebSocket服务,代码如下:
var WebSocketServer = require('ws').Server
var wss = new WebSocketServer( { server : app } )
从代码中可以看出,在初始化WebSocket服务时,把我们刚才构建好的HTTP实例传递进去就好。到这里,我们的服务端代码差不多也就编写完成了。
WebSocket (WS)是HTML5一种新的协议。它实现了浏览器与服务器全双工通信,能更好地节省服务器资源和带宽并达到实时通讯。WebSocket建立在TCP之上,同HTTP一样通过TCP来传输数据,但是它和HTTP最大不同是:
WebSocket是一种双向通信协议,在建立连接后,WebSocket服务器和Browser/Client Agent都能主动的向对方发送或接收数据,就像Socket一样;WebSocket需要类似TCP的客户端和服务器端通过握手连接,连接成功后才能相互通信。
WSS(Web Socket Secure)是WebSocket的加密版本。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)