Пример #1
0
 public static function sendMessage($message)
 {
     try {
         $config = \SciActive\RequirePHP::_('NymphPubSubConfig');
         $loop = \React\EventLoop\Factory::create();
         $logger = new \Zend\Log\Logger();
         $writer = new \Zend\Log\Writer\Stream("php://stderr");
         $logger->addWriter($writer);
         foreach ($config['entries'] as $host) {
             $client = new \Devristo\Phpws\Client\WebSocket($host, $loop, $logger);
             $client->on("connect", function () use($message, $client) {
                 $client->send($message);
                 $client->close();
             });
             $client->open();
         }
         $loop->run();
     } catch (\React\SocketClient\ConnectionException $e) {
         // Ignore a failed connection.
     }
 }
Пример #2
0
<?php

/**
 * Connect to the echo.websocket.org server and check whether our message is echoed back
 *
 * User: Chris
 * Date: 30-9-13
 * Time: 21:05
 */
require_once __DIR__ . "/../vendor/autoload.php";
$loop = \React\EventLoop\Factory::create();
$logger = new \Zend\Log\Logger();
$writer = new Zend\Log\Writer\Stream("php://output");
$logger->addWriter($writer);
$client = new \Devristo\Phpws\Client\WebSocket("ws://echo.websocket.org/?encoding=text", $loop, $logger);
//$client = new \Devristo\Phpws\Client\WebSocket("ws://google.com", $loop, $logger);
$client->on("connect", function () use($logger, $client) {
    $logger->notice("Or we can use the connect event!");
    $client->send("Hello world!");
});
$client->on("message", function ($message) use($client, $logger) {
    $logger->notice("Got message: " . $message->getData());
    $client->close();
});
$client->open()->then(function () use($logger, $client) {
    $logger->notice("We can use a promise to determine when the socket has been connected!");
});
$loop->run();
Пример #3
0
 /**
  * Relay publish data to other servers.
  *
  * @param string $message The publish data to relay.
  */
 private function relay($message)
 {
     $config = \SciActive\RequirePHP::_('NymphPubSubConfig');
     if (!$config['relays']) {
         return;
     }
     $loop = \React\EventLoop\Factory::create();
     $logger = new \Zend\Log\Logger();
     $writer = new \Zend\Log\Writer\Stream("php://stderr");
     $logger->addWriter($writer);
     foreach ($config['relays'] as $host) {
         $client = new \Devristo\Phpws\Client\WebSocket($host, $loop, $logger);
         $client->on("connect", function () use($message, $client) {
             $client->send($message);
             $client->close();
         });
         $client->open();
     }
     $loop->run();
 }