什么是webSocket
WebSocket是一种全新的协议作为HTML5中进行全双工通讯的网络技术,它能够在浏览器和服务器之间建立双向连接,
服务器端和客户端可以同时发送并响应请求,而不再像HTTP的请求和响应;
浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。
WebSocket不属于http无状态协议,协议名为"ws";
ws不是http,所以传统的web服务器不一定支持,需要服务器与浏览器同时支持;
为什么要用webSocket
高效节能,简单易用。。。。
WebSocket用于解决浏览器与后台服务器双向通讯的问题,使用WebSocket技术,
后台可以随时向前端推送消息,以保证前后台状态统一。。。
我们只需要实例化WebSocket,创建连接,查看是否连接成功,然后就可以发送和响应消息了。。。
WebSocket 连接本质上就是一个 TCP 连接,所以在数据传输的稳定性和数据传输量的大小方面。。。
使用WebSocket 协议中,为我们实现即使服务带来了两大好处:
1.浏览器发出websocket连线请求,然后服务器发出回应,通过一次握手建立一次连接。
2.服务器可以主动传送数据给客户端
3.响应传送的header文件大小较少
怎么使用webSocket
前台客户端:
首先,浏览器要支持webSocket,目前有:谷歌,火狐,IE10+
在创建webSocket的时候,需要检测浏览器是否支持webSocket
后台服务器端:
传统的web服务器通常不支持WebSocke,比如tomcat目前就不支持(tomcat 7.0.26 支持WebSocket了),jetty服务器;
客户端的实现:
ws = newWebSocket("ws://192.168.1.24:8080/webSocket/mywebsocket.do");
ws.onmessage =function(evt) {
alert(evt.data);
}
ws.onclose = function(evt) {
alert("close");
};
ws.onopen = function(evt) {
alert("open");
};
}
function sendMsg(){
ws.send(sendmsg);
};
后台服务端:
tomcat7以上提供了WebSocketServlet ,MessageInbound 等类
WebSocketServlet 是一个抽象类,他继承自HttpServlet
里面有一个抽象方法:createWebSocketInbound
MessageInbound 的子类会实现 onOpen onClose onTextMessage onBinaryMessage 方法