bmh_cesium/public/widgets/plotSocket/widget.js
2025-03-10 07:23:50 +08:00

112 lines
2.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//模块:
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客户端
* 使用说明:
* 1、WebSocket客户端通过回调函数来接收服务端消息。例如webSocket.onmessage
* 2、WebSocket客户端通过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));
}
}));