fromWire static method

ClientMessage fromWire(
  1. Map<String, dynamic> wire
)

Implementation

static ClientMessage fromWire(Map<String, dynamic> wire) {
  final type = wire['type'];
  switch (type) {
    case 'join':
      _requireOnly(wire, {'type', 'peer', 'capabilities'});
      return ClientJoin(
        wire['peer'] as int,
        (wire['capabilities'] as List?)?.cast<String>(),
      );
    case 'offer':
      _requireOnly(wire, {'type', 'to', 'sdp'});
      return ClientOffer(wire['to'] as int, wire['sdp'] as String);
    case 'answer':
      _requireOnly(wire, {'type', 'to', 'sdp'});
      return ClientAnswer(wire['to'] as int, wire['sdp'] as String);
    case 'ice':
      _requireOnly(wire, {'type', 'to', 'candidate'});
      return ClientIce(wire['to'] as int, wire['candidate'] as String);
    case 'relay':
      _requireOnly(wire, {'type', 'to', 'payload'});
      return ClientRelay(wire['to'] as int, wire['payload'] as Object);
    case 'leave':
      _requireOnly(wire, {'type'});
      return ClientLeave();
    default:
      throw FormatException('unknown ClientMessage type: $type');
  }
}