diff --git a/lib/AnyEvent/NSQ/Connection.pm b/lib/AnyEvent/NSQ/Connection.pm index 5a73a0c..e483e2a 100644 --- a/lib/AnyEvent/NSQ/Connection.pm +++ b/lib/AnyEvent/NSQ/Connection.pm @@ -85,6 +85,21 @@ sub connect { return; } +sub disconnect { + my ($self, $cb) = @_; + return unless my $hdl = $self->{handle}; + + $hdl->push_write("CLS\012"); + + $self->_on_next_success_frame( + sub { + $cb->($self, @_) if $cb; + $self->_force_disconnect; + } + ); + + return; +} ## Protocol API