Flutter WebSocketException:连接到';http://localhost:1234/ws#' 未升级到websocket。无法连接到颤振/飞镖虚拟机 描述
我正在尝试运行一个flatterweb服务器,并使用Flutter WebSocketException:连接到';http://localhost:1234/ws#' 未升级到websocket。无法连接到颤振/飞镖虚拟机 描述,flutter,dart,flutter-test,flutter-web,Flutter,Dart,Flutter Test,Flutter Web,我正在尝试运行一个flatterweb服务器,并使用VM\u服务库以编程方式连接到Dart虚拟机。web服务器已成功启动,但当我尝试侦听套接字时,收到以下错误: 未处理的异常:WebSocketException:到“”的连接未升级到websocket 我的代码基于下面链接中的vm\u服务库示例,开发人员在该示例中启动Dart vm并连接到它 复制步骤 错误的来源如下所示: serviceClient = await vmServiceConnect(host, port, log: new
VM\u服务
库以编程方式连接到Dart虚拟机。web服务器已成功启动,但当我尝试侦听套接字时,收到以下错误:
未处理的异常:WebSocketException:到“”的连接未升级到websocket
我的代码基于下面链接中的vm\u服务
库示例,开发人员在该示例中启动Dart vm并连接到它
复制步骤 错误的来源如下所示:
serviceClient = await vmServiceConnect(host, port, log: new StdoutLog());
完整代码如下所示:
library service_tester;
import 'dart:async';
import 'dart:collection';
import 'dart:convert';
import 'dart:io';
import 'package:path/path.dart' as path;
import 'package:pedantic/pedantic.dart';
import 'package:vm_service/vm_service.dart';
import 'package:vm_service/vm_service_io.dart';
// import 'package:test/test.dart';
final String host = 'localhost';
final int port = 1234;
VmService serviceClient;
void main() async {
Directory current = Directory.current;
String sdk = path.dirname(path.dirname(Platform.resolvedExecutable));
String fsdk = path.dirname(path.dirname(Platform.resolvedExecutable));
// var flutterSDK = new Directory('C:/flutter/bin'); //FOR WINDOWS
var flutterSDK = new Directory('/opt/flutter/bin'); //FOR LINUX
print('Using sdk at ${sdk}');
print('Directory ${current.path}');
print('Directory ${flutterSDK.path}/flutter');
var commands = ["run", "--target=lib/main.dart", "-d", "web", '--web-port=${port}' ];
print('Running command: flutter ${commands.join(" ")}');
Process process = await Process.start('flutter', commands , runInShell: true);
print('dart process started: ${process.pid}');
process.exitCode.then((code) => print('vm exited: ${code}'));
process.stdout.transform(utf8.decoder).listen((v)=>print('STDOUT: $v'));
process.stderr.transform(utf8.decoder).listen((v)=>print('STDERR: $v'));
await new Future.delayed(new Duration(milliseconds: 1 * 60 * 1000));
print('\n\nConnecting to ${host}:${port}\n\n');
serviceClient = await vmServiceConnect(host, port, log: new StdoutLog());
print('\n\nSocket connected to ${host}:${port}\n\n');
// serviceClient.onSend.listen((str) => print('--> ${str}'));
// var checkResponseJsonCompatibility = true;
// serviceClient.onReceive.listen((str) =>print('<-- ${str}'));
// serviceClient.onIsolateEvent.listen((e) => print('onIsolateEvent: ${e}'));
// serviceClient.onDebugEvent.listen((e) => print('onDebugEvent: ${e}'));
// serviceClient.onGCEvent.listen((e) => print('onGCEvent: ${e}'));
// serviceClient.onStdoutEvent.listen((e) => print('onStdoutEvent: ${e}'));
// serviceClient.onStderrEvent.listen((e) => print('onStderrEvent: ${e}'));
// unawaited(serviceClient.streamListen(EventStreams.kIsolate));
// unawaited(serviceClient.streamListen(EventStreams.kDebug));
// unawaited(serviceClient.streamListen(EventStreams.kStdout));
VM vm = await serviceClient.getVM();
print('hostCPU=${vm.hostCPU}');
print(await serviceClient.getVersion());
}
class StdoutLog extends Log {
void warning(String message) => print(message);
void severe(String message) => print(message);
}
[✓] Flutter (Channel master, v1.12.5-pre.27, on Linux, locale en_US.UTF-8)
• Flutter version 1.12.5-pre.27 at /opt/flutter
• Framework revision 29ab6b549a (8 hours ago), 2019-11-19 11:29:35 -0800
• Engine revision ecb32952ff
• Dart version 2.7.0
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
• Android SDK at /opt/sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.3
• ANDROID_HOME = /opt/sdk
• Java binary at: /usr/local/openjdk-8/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_232-b09)
• All Android licenses accepted.
[✗] Chrome - develop for the web (Cannot find chrome executable at google-chrome)
! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[!] Android Studio (not installed)
• Android Studio not found; download from https://developer.android.com/studio/index.html
(or visit https://flutter.dev/setup/#android-setup for detailed instructions).
[✓] Connected device (1 available)
• Web Server • web-server • web-javascript • Flutter Tools
! Doctor found issues in 2 categories.
错误记录
在项目中运行“flatter pub get”。。。2.8s
在/usr/lib/dart处使用sdk
目录/项目
目录/opt/flatter/bin/flatter
运行命令:flatterrun--target=lib/main.dart-d web--web端口=1234
dart过程已开始:56
下载网页SDK。。。
标准输出:3.5s
标准:
标准输出:在调试模式下在Web服务器上启动lib/main.dart。。。
正在为web构建应用程序。。。
标准输出:31.9秒
lib/main.dart正在http://localhost:1234/
警告:Flitter对web开发的支持还不稳定,而且还不稳定
已在生产环境中进行了全面测试。
有关更多信息,请参阅https://flutter.dev/web
标准:
[✓] Flutter (Channel master, v1.12.5-pre.27, on Linux, locale en_US.UTF-8)
• Flutter version 1.12.5-pre.27 at /opt/flutter
• Framework revision 29ab6b549a (8 hours ago), 2019-11-19 11:29:35 -0800
• Engine revision ecb32952ff
• Dart version 2.7.0
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
• Android SDK at /opt/sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.3
• ANDROID_HOME = /opt/sdk
• Java binary at: /usr/local/openjdk-8/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_232-b09)
• All Android licenses accepted.
[✗] Chrome - develop for the web (Cannot find chrome executable at google-chrome)
! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[!] Android Studio (not installed)
• Android Studio not found; download from https://developer.android.com/studio/index.html
(or visit https://flutter.dev/setup/#android-setup for detailed instructions).
[✓] Connected device (1 available)
• Web Server • web-server • web-javascript • Flutter Tools
! Doctor found issues in 2 categories.