handleDataMessage method

  1. @override
void handleDataMessage(
  1. RTCDataChannelMessage message
)
override

Implementation

@override
void handleDataMessage(RTCDataChannelMessage message) {
  final deserializedData = unpack(message.binary);
  // PeerJS specific message
  dynamic peerData;
  try {
    peerData = deserializedData['__peerData'];
  } catch (err, stack) {
    // Ignore errors in extracting peerData
  }

  if (peerData != null) {
    try {
      if (peerData['type'] == 'close') {
        close();
        return;
      }
    } catch (err, stack) {
      // data or chunk has not finsihed being sent
    }

    // Handle chunked data
    _handleChunk(deserializedData);
    return;
  }

  emit('data', deserializedData);
}