
//模块：
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客户端 PS：URL开头表示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));
    }



}));
