register method
Registers the local port and sets a listener.
An Exception is thrown if the port is already registered.
Implementation
void register(OnMessageReceived onMessage) {
if (registered) {
throw Exception('Port $portName is already registered');
}
final Stream<dynamic> stream = _manager.registerLocalPort(this);
_streamSubscription = stream.listen((dynamic event) {
if (event is Map) {
final Map<dynamic, dynamic> map = event;
final dynamic message = map['message'];
if (map.containsKey('remotePort')) {
final String remoteAppId = map['remoteAppId'] as String;
final String remotePort = map['remotePort'] as String;
final bool trusted = map['trusted'] as bool;
onMessage(message, RemotePort._(remoteAppId, remotePort, trusted));
} else {
onMessage(message);
}
}
});
_registered = true;
}