首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >websocket readyState 0(连接)

websocket readyState 0(连接)
EN

Stack Overflow用户
提问于 2021-04-09 23:06:19
回答 1查看 378关注 0票数 0

我正在尝试实现一个简单的web套接字应用程序。

代码语言:javascript
复制
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();
代码语言:javascript
复制
"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(连接)

有人能帮我找出我做错了什么吗。一如既往地提前感谢。

EN

回答 1

Stack Overflow用户

发布于 2022-03-15 10:10:00

尝试一种callBack方法:

代码语言:javascript
复制
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“回调将跳闸发送:

代码语言:javascript
复制
await this.connectToWs(async () => await this.websocket.send(JSON.stringify(Entries)));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67029297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档