UNPKG

aodianyun-lcps-mcp

Version:

奥点云活动导播台工程MCP服务

74 lines (64 loc) 1.28 kB
import WebSocket from 'ws'; const LCPSWebsocketClient = function (wsaddr, topic, onOpenCallback, onMsgCallback) { var topic = topic || "lcps.call"; let close = false; var ws = null; var Connect = function () { var wsTmp = new WebSocket(wsaddr); wsTmp.on('open', function open() { wsTmp.send(JSON.stringify({ "event": "StartSubscribeMessage", "data": { "variefy": "fLJJFM2xUNmOoIpr", "topic": topic, } }), function (err) { }); // ws.send(Date.now()); ws = wsTmp; if (onOpenCallback) { onOpenCallback(); } }); wsTmp.on('message', function incoming(message) { if (onMsgCallback) { var json = JSON.parse(message); if (json == null) { return; } onMsgCallback(json); } }); wsTmp.on('error', function close() { ws = null; setTimeout(function () { if (!close) { Connect(); } }, 1000); }); wsTmp.on('close', function close() { ws = null; setTimeout(function () { if (!close) { Connect(); } }, 1000); }); } Connect(); this.Send = function (msg) { if (close) { return; } if (ws) { ws.send(msg, function (err) { }); } } this.Close = function () { close = true; if (ws) { ws.close(); } } } export { LCPSWebsocketClient };