SubscribingClient constructor
SubscribingClient(
- dynamic channel
Implementation
SubscribingClient(channel) : super(channel) {
// This "fallback" handles all valid notifications from the server
peer.registerFallback((Parameters params) async {
var methodPrefix = Subscribable.getMethodPrefix(params.method);
var subscribable = _subscribables[methodPrefix];
if (subscribable == null) {
throw RpcException.methodNotFound(methodPrefix);
}
var key = subscribable.key(params.asList);
var controllers = _subscriptions[key] ?? [];
try {
var result = subscribable.notificationResult(params.asList);
for (var controller in controllers) {
controller.sink.add(result);
}
} catch (err) {
for (var controller in controllers) {
controller.sink.addError(err);
}
}
});
}