onStateChange method

  1. @override
void onStateChange()
override

Implementation

@override
void onStateChange() {
  final msgState = connection.getControlMsgState();
  final dataState = connection.getControlDataState();
  print('[DataChannelObserver~${connection.connectionId}] onStateChange: msgState=$msgState, dataState=$dataState');
  if (msgState == RTCDataChannelState.RTCDataChannelOpen) {
    WebrtcManager.availableConnections.add(connection);
    if (WebrtcManager.availableConnections.length == 1 && WebrtcManager._currentSelectedConnection == null) {
      WebrtcManager._currentSelectedConnection = connection;
      print('onStateChange Auto-selected device: ${connection.remoteDeviceId}');
    }
  } else if (msgState == RTCDataChannelState.RTCDataChannelClosed) {
    print('RTCDataChannelClosed');
    WebrtcManager.availableConnections.clear();
    WebrtcManager.localOfferConnections.clear();
    WebrtcManager.remoteSdpConnections.clear();
  }
}