public function testPublish() { $loop = $this->loop; $client = new Client($loop, $this->host, $this->port, $this->path); $published = null; $this->server->setOnPublishCallback(function (ConnectionInterface $conn, $topic, $event) use(&$published, $loop) { /** @var \Ratchet\Wamp\Topic $topic */ $published = array('topic' => $topic->getId(), 'message' => $event); $loop->stop(); }); $response = null; $client->setOnWelcomeCallback(function (Client $conn, $data) use(&$response, $loop) { $conn->publish('mytopic', 'my_message'); }); $loop->run(); $this->assertEquals('mytopic', $published['topic']); $this->assertEquals('my_message', $published['message']); }
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); }
public function testEvent() { $loop = $this->loop; $client = new Client($loop, $this->host, $this->port, $this->path); $server = $this->server; $this->server->setOnSubscribeCallback(function (ConnectionInterface $conn, $topic) use($server) { /** @var \Ratchet\Wamp\Topic $topic */ $server->broadcast($topic->getId(), 'this is my message'); }); $response = null; $client->setOnEventCallback(function (Client $conn, $topic, $data) use(&$response, $loop) { $response = array('topic' => $topic, 'message' => $data); $loop->stop(); }); $client->setOnWelcomeCallback(function (Client $conn, $data) { $conn->subscribe('test_topic'); }); $loop->run(); $this->assertEquals('test_topic', $response['topic']); $this->assertEquals('this is my message', $response['message']); }
public function tearDown() { $this->server->close(); }