flutter - web_socket_channel 抛出不支持的操作 : Platform. _version

标签 flutter dart websocket

如何将 websocket 包与 dart web 一起使用?我有以下代码

import 'package:projectname/data/chat/chat_message.dart';
import 'package:projectname/data/chat/chat_provider.dart';
import 'package:web_socket_channel/io.dart';

import '../path.dart';

class MockChatProvider implements ChatProvider {
  @override
  IOWebSocketChannel connect() {
    return IOWebSocketChannel.connect(Uri.parse(Path.joinChat));
  }

  @override
  sendChatMessage(IOWebSocketChannel channel, ChatMessage message) {
    channel.sink.add(message.toJson());
  }
}

但是当我尝试连接时出现以下错误

Unsupported operation: Platform._version

该软件包确实说它支持网络。我做错了什么?

最佳答案

只需使用包package:web_socket_channel/web_socket_channel.dart
TLDR;
我认为你应该使用这个...

import 'package:web_socket_channel/web_socket_channel.dart';

...而不是...

import 'package:web_socket_channel/io.dart';

并将其用作

WebSocketChannel connect() {
...
return WebSocketChannel.connect(Uri.parse(Path.joinChat));
...
sendChatMessage(WebSocketChannel channel, ChatMessage message) {

注意:我还没有尝试过并测试过!

我认为问题在于您找到了正确的包,但您直接使用IOWebSocketChannel。这只适用于 dart:io 可用的地方。该包中还有另一个类,HtmlWebSocketChannel,仅适用于网络。

关于flutter - web_socket_channel 抛出不支持的操作 : Platform. _version,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70565626/

相关文章:

flutter - 如何为Flutter中的所有设备将小部件与Media Query对齐?

android - 由于 Release模式下的内存问题导致应用程序崩溃

flutter - 让父级调整子级小部件的大小

node.js - socket.io 判断用户是在线还是离线

Javascript websocket 客户端将 cookie 添加到 header

flutter - 如何将金钱格式化为数百万美元?

flutter - 试图在 flutter driver 中获取多个元素(QA 环境)

flutter - 在 Flutter 中根据屏幕大小重新排列 UI 元素

flutter - 如何从Flutter中的其他Dart文件访问功能?

java - Websocket连接自动关闭?