private function setTimer(ArrayObject $topics, $topic, $id)
{
$t = $topics[$id];
if (!isset($t->timer)) {
$self = $this;
$t->timer = $this->timer->setTimeout(function () use($self, $topics, $topic, $id) {
$self->offline($topics, $topic, $id);
}, $t->heartbeat);
}
}