private function flushRules() { $conn = new \Thruway\Connection(["realm" => 'authful_realm', "url" => 'ws://127.0.0.1:8090', "max_retries" => 0, "authmethods" => ["simplysimple"], "onChallenge" => function () { return "ozTheGreatAndPowerful"; }]); // now set permissions to allow stuff $conn->on('open', function (\Thruway\ClientSession $session) use($conn) { $session->call("flush_authorization_rules", [false])->then(function ($r) use($conn) { $conn->close(); }, function ($msg) use($conn) { $conn->close(); $this->fail("failed to flush rules " . $msg->getErrorUri()); }); }); $conn->open(); }
private function go($message, $to) { $S = anyC::getFirst("Websocket", "WebsocketUseFor", "phim"); $realm = $S->A("WebsocketRealm"); spl_autoload_unregister("phynxAutoloader"); require Util::getRootPath() . 'PWS/Thruway/vendor/autoload.php'; require_once __DIR__ . '/ClientPhimAuthenticator.php'; Thruway\Logging\Logger::set(new Psr\Log\NullLogger()); $connection = new \Thruway\Connection(["realm" => $realm, "url" => "ws" . ($S->A("WebsocketSecure") ? "s" : "") . "://" . $S->A("WebsocketServer") . ":" . $S->A("WebsocketServerPort") . "/"]); $client = $connection->getClient(); $client->addClientAuthenticator(new ClientPhimAuthenticator($realm, "phimUser", $S->A("WebsocketToken"))); $connection->on('open', function (\Thruway\ClientSession $session) use($connection, $message, $to) { $session->publish('it.furtmeier.phim_' . $to, [json_encode($message, JSON_UNESCAPED_UNICODE)], [], ["acknowledge" => true])->then(function () use($connection) { $connection->close(); }, function ($connection) { $connection->close(); }); }); $connection->open(); /*$client = new Thruway\Peer\Client($realm); $client->addClientAuthenticator(new ClientPhimAuthenticator($realm, "phimUser", $S->A("WebsocketToken"))); $client->addTransportProvider(new Thruway\Transport\PawlTransportProvider("ws".($S->A("WebsocketSecure") ? "s" : "")."://".$S->A("WebsocketServer").":".$S->A("WebsocketServerPort")."/")); $client->on('open', function (Thruway\ClientSession $session) use ($message, $to) { $session->publish('it.furtmeier.phim_'.$to, [json_encode($message, JSON_UNESCAPED_UNICODE)], [], ["acknowledge" => true])->then( function () { echo "Publish Acknowledged!\n"; die(); }, function ($error) { // publish failed echo "Publish Error {$error}\n"; } ); //$session->close(); }); $client->start();*/ }
public function getAuthId() { return $this->authID; } public function setAuthId($authid) { } public function getAuthMethods() { return ["phimAuth_" . $this->realm]; } public function getAuthenticateFromChallenge(Thruway\Message\ChallengeMessage $msg) { return new \Thruway\Message\AuthenticateMessage($this->key); } } } $connection = new \Thruway\Connection(["realm" => $realm, "url" => "ws" . ($S->A("WebsocketSecure") ? "s" : "") . "://" . $S->A("WebsocketServer") . ":" . $S->A("WebsocketServerPort") . "/"]); $client = $connection->getClient(); $client->addClientAuthenticator(new ClientPhimAuthenticator($realm, "phimUser", $S->A("WebsocketToken"))); $connection->on('open', function (\Thruway\ClientSession $session) use($connection, $message) { $session->publish('it.furtmeier.fheme', [json_encode($message, JSON_UNESCAPED_UNICODE)], [], ["acknowledge" => true])->then(function () use($connection) { $connection->close(); }, function ($connection) { $connection->close(); }); }); $connection->open(); #spl_autoload_unregister(array("ThruwayLoader", "alienClassLoader")); #spl_autoload_register("phynxAutoloader"); }