connectRSocket function
Future<DuplexConnection>
connectRSocket(
- String url,
- TcpChunkHandler handler,
- SocketClosedCallback? socketClosedCallback, {
- Duration? connectTimeout,
Implementation
Future<DuplexConnection> connectRSocket(String url, TcpChunkHandler handler,
SocketClosedCallback? socketClosedCallback,
{Duration? connectTimeout}) async {
var uri = Uri.parse(url);
var scheme = uri.scheme;
if (scheme == 'tcp') {
var socketFuture = Socket.connect(uri.host, uri.port);
return socketFuture.then((socket) => TcpDuplexConnection(socket));
}
if (scheme == 'ws' || scheme == 'wss') {
final websocket = await WebSocketChannel.connect(
Uri.parse(url),
connectTimeout: connectTimeout,
);
return WebSocketDuplexConnection(websocket,
socketClosedCallback: socketClosedCallback);
} else {
return Future.error('${scheme} unsupported');
}
}