leave method

PhoenixPush? leave()

Leaves the channel

Notifies the server and triggers onCloseCallback(s)

Implementation

PhoenixPush? leave() {
  _state = PhoenixChannelState.leaving;

  Function onCloseCallback = (_) {
    trigger(PhoenixChannelEvents.close);
  };

  final leavePush =
      new PhoenixPush(this, PhoenixChannelEvents.leave, {}, timeout);

  leavePush
      .receive("ok", onCloseCallback as dynamic Function(Map<dynamic, dynamic>?))
      .receive("timeout", onCloseCallback);

  leavePush.send();

  if (!canPush) {
    leavePush.trigger("ok", {});
  }

  return leavePush;
}