bmh_cesium/public/widgets/plotSocket/widget.js

112 lines
2.9 KiB
JavaScript
Raw Normal View History

2025-03-09 23:23:50 +00:00
//模块:
xjsdk.widget.bindClass(xjsdk.widget.BaseWidget.extend({
options: {
//弹窗
view: {
type: "divwindow",
url: "view.html",
windowOptions: {
width: 400,
height: 110
}
}
},
//每个窗口创建完成后调用
winCreateOK: function (opt, result) {
var that = this;
var lasturl = haoutil.storage.get("plot_ws");
if (lasturl) {
$("#txtWSUrl").val(lasturl);
that.connectionWS(lasturl);
}
$("#txtCoonWS").click(function () {
var url = $("#txtWSUrl").val();
haoutil.storage.add("plot_ws", url);
that.connectionWS(url);
});
$("#txtColseWS").click(function () {
that.closeSocket();
});
},
//激活插件
activate: function () {
},
//释放插件
disable: function () {
this.viewWindow = null;
},
showMsg: function (msg) {
$("#lblMsg").html(msg);
},
webSocket: null,
/**
* WebSocket客户端
* 使用说明
* 1WebSocket客户端通过回调函数来接收服务端消息例如webSocket.onmessage
* 2WebSocket客户端通过send方法来发送消息给服务端例如webSocket.send();
*/
connectionWS: function (webSocketUrl) {
var that = this;
this.closeSocket();
/** WebSocket客户端 PSURL开头表示WebSocket协议 中间是域名端口 结尾是服务端映射地址 */
var webSocket = new WebSocket(webSocketUrl);
/** 当服务端打开连接 */
webSocket.onopen = function (event) {
console.log('WebSocket打开连接');
that.showMsg('已连接');
};
/** 通信失败 */
webSocket.onerror = function (event) {
console.log('WebSocket发生异常');
that.showMsg('连接发生异常');
};
/** 关闭连接 */
webSocket.onclose = function (event) {
console.log('WebSocket关闭连接');
that.showMsg('连接已关闭');
};
/** 当服务端发来消息1.广播消息 2.更新在线人数 */
webSocket.onmessage = function (event) {
console.log('WebSocket接收到消息');
console.log(event.data);
var data = JSON.parse(event.data);
that.config.updateAttr(data);
};
this.webSocket = webSocket;
return webSocket;
},
closeSocket: function () {
if (this.webSocket) {
this.webSocket.close();
delete this.webSocket;
}
},
sendSocket:function(json){
if (!this.webSocket) return;
console.log('发送了WebSocket消息');
console.log(json);
this.webSocket.send(JSON.stringify(json));
}
}));