ssl - 使用 Dart :io WebSocket with wss://protocol (SSL)

标签 ssl websocket dart

我尝试使用 WebSocket classdart:io 包中连接到 SSL WebSocket 服务。这似乎不起作用。目前不支持 wss:// 协议(protocol)还是我遗漏了什么。这是使用的代码:

var ws = new WebSocket('wss://...');

ws.onopen = () {
    print('open');
};

ws.onmessage = (e) {
    print(e.data);
};

我还尝试了替代 API:

var client = new HttpClient(),
    conn = new WebSocketClientConnection(client.getUrl(new Uri.fromString('https://...')));

    conn.onMessage = (msg) {
        print(msg);
    };

    conn.onOpen = () {
        print('open');
    };

这似乎也不起作用,我收到如下错误:

1006 HttpParserException: Connection closed before full response header was received 1006 HttpParserException: Invalid request method

我正在使用最新的 SDK。

最佳答案

我假设您使用的是最新版本的 Dart。如果您不是,我建议您进行更新。

您正在调用的一些方法 - conn.onMessage()conn.onOpen() 返回 Stream 对象,您需要使用 .listen() 访问(“收听”)流。语法如下:

import 'dart:html';

void main() {
  var wss = new WebSocket('wss://echo.websocket.org');
  wss.onOpen.listen((item) {
    wss.send("hello world");
  });

  wss.onMessage.listen((message) {
    print(message.data);
  });
}

等等

你能试试吗?有关详细信息,请阅读 StreamWebsocket在 api 文档中。

关于ssl - 使用 Dart :io WebSocket with wss://protocol (SSL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14496496/

相关文章:

wcf - 通过 SSL 为 IIS6 配置 WCF 传输安全

javascript - 通过 Websockets 发送字节数据 (JavaScript)

opencv - 通过 Autobahn WebSocket 流式传输视频

firebase - 用什么方法在屏幕上以 flutter 的方式显示列表中的数据?

flutter - 如何 : rotate a selected/set image (Flutter)

ssl - HTTPS 站点上的 PhantomJS "SSL handshake failed",即使使用所有标志

ssl - noVNC 仅使用 HTTPS 连接到专用 LAN 上的 VNCServer

java - 使用 HTTPS 保护 Netbeans 6.7 tomcat 管理器 URL

python - 如何在不同类的 Main Widget 和 QObject 之间传递数据

dart - Dart apt repo 的 NO_PUBKEY "4EB27DB2A3B88B8B"