启动并验证Dart VM服务

时间:2018-12-20 16:18:36

标签: dart

我有一个两部分的问题。

首先,我应该使用什么Dart命令来“启动” VM服务监听请求,可能 给它提供要使用的主机和端口号。

我正在使用Windows,可能不需要天文台 干扰。

在将CD放入项目目录后,我目前正在尝试使用此功能:

dart --pause_isolates_on_start bicycle

问题的第二部分是,是否可以验证 VM服务在那里并且正在侦听任何端口?

我希望能够向VM服务发送请求, 从WebSocket客户端中获取并返回响应。

输入上述命令后,如果执行“ netstat” 看起来好像没有东西在听。

任何尝试连接到VM服务的尝试都会获得 连接被拒绝异常,就像我什至没有 尝试启动VM服务。

更新:

我正在查看intelliJ插件代码,以了解他们如何进行连接, 看到他们使用了“ ws:// localhost:8181 / ws”,我试图使用 “ ws:// localhost:8181”,现在终于可以通过握手了, 服务器之前返回的是“ 200 OK”,而不是“ 101”。

我假设此时我正在与观察员交谈, 不确定VM服务,而不是VM服务,但至少我还可以。

当它起作用时,我正在使用:

dart --enable-vm-service --pause_isolates_on_start bicycle.dart

谢谢!

1 个答案:

答案 0 :(得分:0)

dart --help -v版画

--observe[=<port>[/<bind-address>]]
  The observe flag is a convenience flag used to run a program with a
  set of options which are often useful for debugging under Observatory.
  These options are currently:
      --enable-vm-service[=<port>[/<bind-address>]]
      --pause-isolates-on-exit
      --pause-isolates-on-unhandled-exceptions
      --warn-on-pause-with-no-debugger
  This set is subject to change.
  Please see these options for further documentation.

这取决于您要确切执行的操作,但是据我所知,天文台只是使用此服务,并且如果您不访问其任何功能,则不会为该过程增加额外的负担。

有Dart客户端API https://pub.dartlang.org/packages/vm_service_client和有关协议https://github.com/dart-lang/sdk/blob/master/runtime/vm/service/service.md的文档

也许这就是您要寻找的

enum EventKind {
  // Notification that VM identifying information has changed. Currently used
  // to notify of changes to the VM debugging name via setVMName.
  VMUpdate,

  // Notification that a new isolate has started.
  IsolateStart,

与事件https://github.com/dart-lang/sdk/blob/master/runtime/vm/service/service.md#events

一起使用