websocket
websocekt是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议。
1. websocket
WebSocket是为解决客户端与服务端实时通信而产生的技术。其本质是先通过HTTP/HTTPS协议进行握手后创建一个用于交换数据的TCP连接,
此后服务端与客户端通过此TCP连接进行实时通信。
2.优点
服务器推送服务器和客户端可以在给定的时间范围内的任意时刻,相互推送信息。在建立连接之后,服务器可以主动传送数据给客户端。
Header服务器与客户端之间交换的标头信息很小。
以前我们实现推送技术,用的都是轮询,在特点的时间间隔有浏览器自动发出请求,将服务器的消息主动的拉回来,在这种情况下,我们需要不断的向服务器发送请求,然而HTTP request 的header是非常长的,里面包含的数据可能只是一个很小的值,这样会占用很多的带宽和服务器资源。会占用大量的带宽和服务器资源
3. 使用
客户端:
var ws = new WebSocket(“ws://localhost:8080”);
ws.onopen = function()//当websocket创建成功时,即会触发onopen事件
{
console.log(“open”);
ws.send(“hello”);//用于叫消息发送到服务端
};
ws.onmessage = function(evt)//当客户端收到服务端发来的消息时,会触发onmessage事件,参数evt.data中包含server传输过来的数据
{
console.log(evt.data)
};
ws.onclose = function(evt)//当客户端收到服务端发送的关闭连接的请求时,触发onclose事件
{
console.log(“WebSocketClosed!”);
};
ws.onerror = function(evt)//如果出现连接,处理,接收,发送数据失败的时候就会触发onerror事件
{
console.log(“WebSocketError!”);
};
服务端:node.js, jetty, tomcat