如何将 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/