websocket的使用方式
2018-04-19 本文已影响107人
会飞的猪l
Websocked
Websocked协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信-----允许服务器主动发送信息给客户端。
实现原理
在实现websocked连线过程中,需要通过浏览器发出websocked连线请求,然后服务器发出回应,这个过程通常称为‘握手’,在websockedAPI,浏览器和服务器中只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。在此websocked协议中,为我们实现即时服务带来了两大好处:
- Header
互相沟通的Header是很小的-大概只有2Bytes
2.Server Push
服务器的推送,服务器不在被动的接收到浏览器的请求之后才返回数据,而是在有新数据主动推送给浏览器。
//全局变量socket 浏览器需要请求的话 socket .send() 去请求
var socket ;
if ("WebSocket" in window) {
//alert("WebSocket is supported by your Browser!");
//open web socket
var ws = new WebSocket("ws://192.168.0.227:8883/web");
socket = ws;
ws.onopen = function() {
// Web Socket is connected, send data using send()
// ws.send("Message from client");
//console.log('Message is sent...');
//连接时执行
};
ws.onmessage = function(evt) {
console.log(evt);
var received_msg = evt.data;
//alert("Message is received...");
console.log("Server:"+evt.data);
var br = document.createElement("br");
document.body.appendChild(br);
document.body.append(evt.data);
//服务器主动推送时 执行
};
ws.onclose = function() {
// websocket is closed.
//服务器关闭时执行
alert("Connection is closed...");
};
} else {
//不支持WebSocket
alert("WebSocket not supported by your Browser!");
}
function send(){
// socket.send("{\"uid\":\"admin\",\"pwd\":\"admin\"}");
d = '{"Code":"4","MethodName":"E.TOOLOFFSET","Value":"","ID":10,"Parameters":["1","10"]}';
socket.send(d);//document.getElementById('sendText').value
}