'use strict';

const WebSocket = require('ws');

const webSocketUrl = 'ws://localhost:8002/websocket/1';

global.ws = null; // WebSocket 实例对象

/**
 * 启动完毕，输出配置信息
 */
console.log("Start running ...", "process.env", process.env);

function createWebSocket() {
    //申请一个WebSocket对象，参数是服务端地址，同http协议使用http://开头一样，WebSocket协议的url使用ws://开头，另外安全的WebSocket协议使用wss://开头
    global.ws = new WebSocket(webSocketUrl);

    // 当WebSocket创建成功时，触发onopen事件
    global.ws.onopen = function () {
        console.log("webhook is open.");
    }

    // 当客户端收到服务端发送的关闭连接请求时，触发onclose事件
    global.ws.onclose = function (e) {
        console.log("webhook is close.");
        console.log("未知错误被关闭，等待 1s 尝试重新建立连接...");
        setTimeout(function () {
            createWebSocket();
        }, 1000);
    }

    // 如果出现连接、处理、接收、发送数据失败的时候触发onerror事件
    global.ws.onerror = function (e) {
        console.log(e.error);
    }

    // 当客户端收到服务端发来的消息时，触发onmessage事件，参数e.data包含server传递过来的数据
    global.ws.onmessage = function (e) {
        var data = JSON.parse(e.data);
        console.log(data);
    }
}

// 创建连接
createWebSocket();
