Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/php
- <?php
- require __DIR__ . '/vendor/autoload.php';
- use Clue\React\Socks\Client;
- use React\Socket\Connector;
- use React\Stream\WritableResourceStream;
- $loop = React\EventLoop\Factory::create();
- global $stdout;
- $stdout = new WritableResourceStream(STDOUT, $loop);
- $client = new Client('127.0.0.1:1080', new Connector($loop));
- $proxy_connector = new Connector($loop, array(
- 'tcp' => $client,
- 'timeout' => 3.0
- ));
- $connector = new Ratchet\Client\Connector($loop, $proxy_connector);
- // connect directly
- //$connector = new Ratchet\Client\Connector($loop);
- $app = function (Ratchet\Client\WebSocket $conn) use ($loop, $connector, &$app) {
- global $stdout;
- $stdout->write("Connection is open\n");
- $conn->on('message', function (\Ratchet\RFC6455\Messaging\MessageInterface $msg) {
- global $stdout;
- $stdout->write($msg);
- });
- $conn->on('close', function ($code = null, $reason = null) use ($loop, $connector, $app) {
- global $stdout;
- $stdout->write("connection closed ({$code} - {$reason})\n");
- });
- };
- function connect_socket($connector, $loop, $app) {
- $connector('wss://cooler.cloud/magic/')
- ->then($app, function (\Exception $e) use ($loop) {
- global $stdout;
- $stdout->write("Could not connect: {$e->getMessage()}\n");
- $loop->stop();
- });
- }
- connect_socket($connector, $loop, $app);
- $loop->run();
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement