public function testUnSubscription() { $loop = $this->loop; $client = new Client($loop, $this->host, $this->port, $this->path); $unsubscribed = null; $this->server->setOnUnSubscribeCallback(function (ConnectionInterface $conn, $topic) use(&$unsubscribed, $loop) { /** @var \Ratchet\Wamp\Topic $topic */ $unsubscribed = $topic->getId(); $loop->stop(); }); $this->server->setOnSubscribeCallback(function (ConnectionInterface $conn, $topic) use($client) { $client->unsubscribe('this_is_my_new_topic'); }); $client->setOnWelcomeCallback(function (Client $conn, $data) use(&$response, $loop) { $conn->subscribe('this_is_my_new_topic'); }); $loop->run(); $this->assertEquals('this_is_my_new_topic', $unsubscribed); }