anchor.diff:  P2PClient client;
   Map<String, File> files = {};
   void _onPeerJoined(Peer peer) {
  -  peer.onChannelCreated.listen((RtcDataChannel channel) {
  +  peer.onChannelCreated.listen((final RtcDataChannel channel) {
       print('Channel created with label ${channel.label}');
       channel.binaryType = 'arraybuffer';
       
  
positive.code:         print(ev.data);
        });
      } else {
        print('Receiver');
        List receiveBuffer = [];
        channel.onMessage.listen((MessageEvent ev) {
          if(ev.data is ByteBuffer) {
            if((ev.data as ByteBuffer).lengthInBytes < 16384) {
              AnchorElement save = new AnchorElement();
              save.target = '_blank';
              save.download = channel.label;
  
negative.code:       channel.onOpen.listen((Event ev) {
          print('Channel is opened');
          final File file = files[channel.label];
          final int startTime = new DateTime.now().millisecondsSinceEpoch;
          
          print('File to send: ${file.name} ${file.size}');
          
          var chunkSize = 16384;
          sliceFile(final int offset) {
            final FileReader reader = new FileReader();
            reader.onLoadEnd.listen((Event ev) {
              print('bytes in buffer (before): ${channel.bufferedAmount}');
              channel.send(reader.result);
              print('bytes in buffer (after): ${channel.bufferedAmount}');
              if (file.size > offset + (reader.result as TypedData).lengthInBytes) {
                // new Future(() => sliceFile(offset + chunkSize));
                // 0 Delay sending
                sliceFile(offset + chunkSize);
              } else {
                final int time = new DateTime.now().millisecondsSinceEpoch - startTime;
                print('Sending done after ${time}ms');
              }
            });
            Blob slice = file.slice(offset, offset + chunkSize);
            //print('Start reading: $slice');
            reader.readAsArrayBuffer(slice);
          };
          //print('Start slicing');
          sliceFile(0);
        });
        
  