49 lines
1.2 KiB
JavaScript
49 lines
1.2 KiB
JavaScript
|
|
const WebSocket = require('ws');
|
|
|
|
|
|
|
|
async function sendMessageAndWaitForResponse(addres, message) {
|
|
return new Promise((resolve, reject) => {
|
|
const socket = new WebSocket(addres);
|
|
buffarr=[];
|
|
socket.on('open', () => {
|
|
socket.send(message);
|
|
});
|
|
|
|
// 监听服务器返回的消息
|
|
function messageHandler(response) {
|
|
// 在这里处理服务器返回的消息
|
|
// 可以根据需要解析 JSON 或其他处理
|
|
buffarr.push(response)
|
|
socket.off('error',errorHandler)
|
|
|
|
}
|
|
function errorHandler(err)
|
|
{
|
|
console.log(err)
|
|
buffarr.push(Buffer.from("error"))
|
|
resolve(buffarr);
|
|
}
|
|
|
|
socket.on('error',errorHandler);
|
|
// 监听服务器返回的消息
|
|
socket.on('message', messageHandler);
|
|
|
|
// 处理连接关闭情况
|
|
socket.on('close', () => {
|
|
resolve(buffarr);
|
|
});
|
|
});
|
|
}
|
|
async function runinws( message,addres){
|
|
let aa=await sendMessageAndWaitForResponse(addres,message)
|
|
if(typeof aa[0]!="array"||aa.length==0)
|
|
{
|
|
aa=[Buffer.from("error")]
|
|
}
|
|
return aa
|
|
|
|
// console.log(aa[1].toString())
|
|
}
|
|
exports.runinws=runinws |