我正在尝试实现一个简单的web套接字应用程序。
const WebSocket = require("ws");
class SocketService {
async connectService() {
try {
this.socket = await new WebSocket("wss://localhost:3000/", {
origin: "https://localhost:3000",
rejectUnauthorized: false,
});
return this.socket;
} catch (err) {
console.log(err);
process.exit(0);
}
}
async sendMessage() {
try {
await this.socket.send("test 123");
} catch (err) {
console.log(err);
process.exit(0);
}
}
}
module.exports = new SocketService();"use strict";
// Create an instance of a ws client
const socketService = require("./wss_client");
// Connect websocket
(async () => {
try {
// connectService works
await socketService.connectService();
// sendMessage doesn't work
await socketService.sendMessage();
});
} catch (err) {
// err
}
})();但是当调用socketService.sendMessage()时,我会得到这个erorr。
错误: WebSocket未打开: readyState 0(连接)
有人能帮我找出我做错了什么吗。一如既往地提前感谢。
发布于 2022-03-15 10:10:00
尝试一种callBack方法:
private async connectToWs(callback) {
try {
this.websocket = await new WebSocket(WIDGET_URL as string);
this.websocket.onopen = callback;
this.websocket.onerror = console.error;
return this.websocket
} catch (error) {
console.error(error.message)
}
}"onopen“回调将跳闸发送:
await this.connectToWs(async () => await this.websocket.send(JSON.stringify(Entries)));https://stackoverflow.com/questions/67029297
复制相似问题