// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. /// Map the URI to a WebSocket URI for the VM service protocol. /// /// If the URI is already a VM Service WebSocket URI it will not be modified. Uri convertToWebSocketUrl({required Uri serviceProtocolUrl}) { final isSecure = serviceProtocolUrl.isScheme('wss') || serviceProtocolUrl.isScheme('https'); final scheme = isSecure ? 'wss' : 'ws'; final path = serviceProtocolUrl.path.endsWith('/ws') ? serviceProtocolUrl.path : (serviceProtocolUrl.path.endsWith('/') ? '${serviceProtocolUrl.path}ws' : '${serviceProtocolUrl.path}/ws'); return serviceProtocolUrl.replace(scheme: scheme, path: path); }