generateTransportUrl method

String generateTransportUrl(
  1. String url
)

Implementation

String generateTransportUrl(String url) {
  var uri = Uri.parse(url);

  var pathSegments = <String>[];
  pathSegments.addAll(uri.pathSegments);
  pathSegments.add(_generateServerId());
  pathSegments.add(_generateSessionId());
  pathSegments.add('websocket');

  uri = Uri(
    scheme: uri.scheme,
    host: uri.host,
    port: uri.port,
    query: uri.query,
    fragment: null,
    pathSegments: pathSegments,
  );

  var transportUrl = uri.toString();
  if (transportUrl.startsWith('https')) {
    transportUrl = 'wss${transportUrl.substring(5)}';
  } else if (transportUrl.startsWith('http')) {
    transportUrl = 'ws${transportUrl.substring(4)}';
  } else {
    throw ArgumentError('The url has to start with http/https');
  }
  return transportUrl;
}