subscribe method

  1. @override
Future<ClientSubscription> subscribe(
  1. String eventName
)
override

Request a ClientSubscription to the desired eventName from the server.

Implementation

@override
Future<ClientSubscription> subscribe(String eventName) {
  return _whenConnected<ClientSubscription>(() {
    var c = Completer<Map>();
    var requestId = _uuid.v4();
    _requests[requestId] = c;
    serverSendPort.send(MessageHandler().encodeSubscriptionRequestMessage(
        _id, requestId, clientId, eventName));

    return c.future.then<ClientSubscription>((result) {
      var (subcriptionId, clientId) = MessageHandler()
          .decodeSubscriptionResponseMessage(result as Map<String, Object?>);
      _clientId = clientId;
      var s = _IsolateClientSubscription(eventName, subcriptionId, this);
      _subscriptions.add(s);
      return s;
    });
  });
}