var websocket = null;
// 建立连接的方法
function create_websocket() {
// 判断当前浏览器是否支持WebSocket
if ('WebSocket' in window) {
console.log('客户端的唯一标识为:' + getSessionId());
// var fp1 = new Fingerprint(); // 帆布指纹识别,根据客户端浏览器生成的加密码,部分资料显示该码唯一的概率为97%,也可用来充作websocket客户端的唯一标识吧?
if(websocket == null){
websocket = new WebSocket("ws://localhost:8080/ScoketServer?" + getSessionId());
}
} else {
alert('Not support websocket')
}
// 连接发生错误的回调方法
websocket.onerror = function () {
alert("error");
};
// 连接成功建立的回调方法
websocket.onopen = function (event) {
console.log('成功建立连接!')
}
// 接收到消息的回调方法
websocket.onmessage = function (event) {
var record = $.parseJSON(event.data);
console.log(record);
}
// 连接关闭的回调方法
websocket.onclose = function () {
console.log("已断开连接!");
}
// 监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。
window.onbeforeunload = function () {
websocket.close();
}
}
// 关闭连接
function closeWebSocket() {
websocket.close();
}
// 发送消息
function send(message) {
websocket.send(message);
}
// jessionid为唯一标识
function getSessionId() {
return window.localStorage.getItem('JSESSIONID');
}