Files
sdk/pkg/dtd_impl
Danny Tuppeny 4f377da9e3 Disable DTD WebSocket ping by default, making it opt-in
The WebSocket client that IntelliJ is using does not handle pings (despite them being part of the spec), so this change resulted in connections being dropped after 15s.

This changes pings to be opt-in, which unfortunately means other clients that don't opt-in won't get the behaviour (and therefore might see issues with Norton and other antivirus programs that proxy and drop idle connections), but this is better than all IJ users being broken.

See https://github.com/flutter/dart-intellij-third-party/issues/205

Change-Id: I7d5f5225cb9d04c15552970a821f5441c45ace18
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/472580
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2026-01-14 08:58:43 -08:00
..
2025-01-21 14:08:20 -08:00

Dart Tooling Daemon

The server implementation for the Dart Tooling Daemon. This is meant to be run by our internal tooling and facilitates communication between our internal tools.

For details on the protocol used to communicate with the Dart Tooling Daemon see The DTD Protocol

Running the Dart Tooling Daemon

Compiled version

To run the tooling daemon compiled with the Dart SDK:

  1. Build the Dart SDK
  • make sure to build with create_platform_sdk
  • e.g. ./tools/build.py create_platform_sdk
  1. run dart tooling-daemon

    :info The dart binary should be the one you just built in step 1.

Testing changes locally

To quickly test changes to the tooling daemon, start it by running:

dart run bin/dtd.dart

Running tests

To run the tests under the test/ directory, run dart test test/.

However, if you are testing changes that span pkg/dtd and pkg/dtd_impl, you'll need to build the Dart SDK, and then use the built Dart executable to run the test.

  1. Build the Dart SDK: ./tools/build.py create_platform_sdk
  2. Run the test: xcodebuild/ReleaseARM64/dart-sdk/bin/dart test test/