subscribeResource method

  1. @mustCallSuper
FutureOr<EmptyResult> subscribeResource(
  1. SubscribeRequest request
)

Subscribes the client to the resource at request.uri.

Implementation

@mustCallSuper
FutureOr<EmptyResult> subscribeResource(SubscribeRequest request) {
  if (!_resources.containsKey(request.uri)) {
    throw ArgumentError.value(request.uri, 'uri', 'Resource not found');
  }

  _subscribedResources.putIfAbsent(
    request.uri,
    () =>
        StreamController<ResourceUpdatedNotification>()
          ..stream
              .throttle(resourceUpdateThrottleDelay, trailing: true)
              .listen((notification) {
                sendNotification(
                  ResourceUpdatedNotification.methodName,
                  notification,
                );
              }),
  );

  return EmptyResult();
}