aodianyun-lcps-mcp
Version:
奥点云活动导播台工程MCP服务
74 lines (64 loc) • 1.28 kB
JavaScript
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 };