Alice

 view release on metacpan or  search on metacpan

lib/Alice/HTTP/Stream/XHR.pm  view on Meta::CPAN

  }
  
  $output .= $string;

  $output .= "\n--$separator\n"
          .  " " x ($self->min_bytes - length $output);


  $self->writer->write( $output );
}

sub ping {
  my $self = shift;
  return if $self->closed;
  $self->send([{type => "action", event => "ping"}]);
}

sub close {
  my $self = shift;
  $self->flush;
  $self->writer->close if $self->writer;
  $self->writer(undef);
  $self->timer(undef);
  $self->closed(1);
}

sub flooded {
  my $self = shift;
  my $diff = time - $self->last_send;
  if ($diff < 0.2) {
    return 0.2 - $diff;
  }
  return 0;
}

sub delay {
  my ($self, $delay) = @_;
  $self->delayed(1);
  $self->timer(AnyEvent->timer(
    after => $delay,
    cb    => sub {
      $self->delayed(0);
      $self->timer(undef);
      $self->send;
    },
  ));
}

sub flush {
  my $self = shift;
  $self->clear_queue;
  $self->last_send(time);
}

sub to_string {
  my $self = shift;

  return to_json({
    queue => $self->queue,
    time  => time - $self->offset,
  }, {utf8 => 1, shrink => 1});
}

__PACKAGE__->meta->make_immutable;
1;



( run in 0.702 second using v1.01-cache-2.11-cpan-39bf76dae61 )