connectToDeviceServer method

Future<void> connectToDeviceServer()

Implementation

Future<void> connectToDeviceServer() async {
  try {
    // if (_channel.closeCode == null) {
    //   await _channel.sink.close();
    // }

    String deviceUrl = "ws://$SERVER_ADDR_PORT/ws/devices";
    String params = _buildDeviceParams();
    deviceUrl += params;

    _channel = WebSocketChannel.connect(Uri.parse(deviceUrl));

    _channel.stream.listen(
      (message) => _handleDeviceMessage(message),
      onError: (error) {
        onServerDisconnect?.call(0, error.toString());
        // Future.delayed(const Duration(seconds: 3), connectToDeviceServer);
      },
      onDone: () {
        onServerDisconnect?.call(0, "Connection closed");
        // Future.delayed(const Duration(seconds: 3), connectToDeviceServer);
      },
    );
  } catch (e) {
    onServerDisconnect?.call(0, e.toString());
    Future.delayed(const Duration(seconds: 3), connectToDeviceServer);
  }
}