コード例 #1
0
 public function setUp()
 {
     $credentials = Grpc\ChannelCredentials::createSsl(file_get_contents(dirname(__FILE__) . '/../data/ca.pem'));
     $server_credentials = Grpc\ServerCredentials::createSsl(null, file_get_contents(dirname(__FILE__) . '/../data/server1.key'), file_get_contents(dirname(__FILE__) . '/../data/server1.pem'));
     $this->server = new Grpc\Server();
     $this->port = $this->server->addSecureHttp2Port('0.0.0.0:0', $server_credentials);
     $this->server->start();
     $this->host_override = 'foo.test.google.fr';
     $this->channel = new Grpc\Channel('localhost:' . $this->port, ['grpc.ssl_target_name_override' => $this->host_override, 'grpc.default_authority' => $this->host_override, 'credentials' => $credentials]);
 }
コード例 #2
0
ファイル: interop_client.php プロジェクト: moemilmeh/grpc
    $host_override = $args['server_host_override'];
}
$use_tls = false;
if (array_key_exists('use_tls', $args) && $args['use_tls'] != 'false') {
    $use_tls = true;
}
$use_test_ca = false;
if (array_key_exists('use_test_ca', $args) && $args['use_test_ca'] != 'false') {
    $use_test_ca = true;
}
$opts = [];
if ($use_tls) {
    if ($use_test_ca) {
        $ssl_credentials = Grpc\ChannelCredentials::createSsl(file_get_contents(dirname(__FILE__) . '/../data/ca.pem'));
    } else {
        $ssl_credentials = Grpc\ChannelCredentials::createSsl();
    }
    $opts['credentials'] = $ssl_credentials;
    $opts['grpc.ssl_target_name_override'] = $host_override;
} else {
    $opts['credentials'] = Grpc\ChannelCredentials::createInsecure();
}
if (in_array($test_case, ['service_account_creds', 'compute_engine_creds', 'jwt_token_creds'])) {
    if ($test_case == 'jwt_token_creds') {
        $auth_credentials = ApplicationDefaultCredentials::getCredentials();
    } else {
        $auth_credentials = ApplicationDefaultCredentials::getCredentials($args['oauth_scope']);
    }
    $opts['update_metadata'] = $auth_credentials->getUpdateMetadataFunc();
}
if ($test_case == 'oauth2_auth_token') {
コード例 #3
0
ファイル: interop_client.php プロジェクト: jskeet/grpc
function _makeStub($args)
{
    if (!array_key_exists('server_host', $args)) {
        throw new Exception('Missing argument: --server_host is required');
    }
    if (!array_key_exists('server_port', $args)) {
        throw new Exception('Missing argument: --server_port is required');
    }
    if (!array_key_exists('test_case', $args)) {
        throw new Exception('Missing argument: --test_case is required');
    }
    if ($args['server_port'] == 443) {
        $server_address = $args['server_host'];
    } else {
        $server_address = $args['server_host'] . ':' . $args['server_port'];
    }
    $test_case = $args['test_case'];
    $host_override = 'foo.test.google.fr';
    if (array_key_exists('server_host_override', $args)) {
        $host_override = $args['server_host_override'];
    }
    $use_tls = false;
    if (array_key_exists('use_tls', $args) && $args['use_tls'] != 'false') {
        $use_tls = true;
    }
    $use_test_ca = false;
    if (array_key_exists('use_test_ca', $args) && $args['use_test_ca'] != 'false') {
        $use_test_ca = true;
    }
    $opts = [];
    if ($use_tls) {
        if ($use_test_ca) {
            $ssl_credentials = Grpc\ChannelCredentials::createSsl(file_get_contents(dirname(__FILE__) . '/../data/ca.pem'));
        } else {
            $ssl_credentials = Grpc\ChannelCredentials::createSsl();
        }
        $opts['credentials'] = $ssl_credentials;
        $opts['grpc.ssl_target_name_override'] = $host_override;
    } else {
        $opts['credentials'] = Grpc\ChannelCredentials::createInsecure();
    }
    if (in_array($test_case, ['service_account_creds', 'compute_engine_creds', 'jwt_token_creds'])) {
        if ($test_case == 'jwt_token_creds') {
            $auth_credentials = ApplicationDefaultCredentials::getCredentials();
        } else {
            $auth_credentials = ApplicationDefaultCredentials::getCredentials($args['oauth_scope']);
        }
        $opts['update_metadata'] = $auth_credentials->getUpdateMetadataFunc();
    }
    if ($test_case == 'oauth2_auth_token') {
        $auth_credentials = ApplicationDefaultCredentials::getCredentials($args['oauth_scope']);
        $token = $auth_credentials->fetchAuthToken();
        $update_metadata = function ($metadata, $authUri = null, ClientInterface $client = null) use($token) {
            $metadata_copy = $metadata;
            $metadata_copy[CredentialsLoader::AUTH_METADATA_KEY] = [sprintf('%s %s', $token['token_type'], $token['access_token'])];
            return $metadata_copy;
        };
        $opts['update_metadata'] = $update_metadata;
    }
    if ($test_case == 'unimplemented_method') {
        $stub = new grpc\testing\UnimplementedServiceClient($server_address, $opts);
    } else {
        $stub = new grpc\testing\TestServiceClient($server_address, $opts);
    }
    return $stub;
}
コード例 #4
0
 /**
  * @expectedException InvalidArgumentException
  */
 public function testInvalidCreateSsl()
 {
     $channel_credentials = Grpc\ChannelCredentials::createSsl([]);
 }
コード例 #5
0
<?php

require_once __DIR__ . '/../vendor/autoload.php';
use Google\Auth\ApplicationDefaultCredentials;
$auth_credentials = ApplicationDefaultCredentials::getCredentials(['https://www.googleapis.com/auth/pubsub']);
$channel_credentials = Grpc\ChannelCredentials::createSsl(file_get_contents(__DIR__ . '/../vendor/grpc/grpc/etc/roots.pem'));
$opts = ['credentials' => $channel_credentials, 'grpc.ssl_target_name_override' => 'pubsub.googleapis.com'];
$client = new google\pubsub\v1\PublisherClient('pubsub.googleapis.com', $opts);
$deadline = Grpc\Timeval::InfFuture();
$req = new google\pubsub\v1\ListTopicsRequest();
$proj = getenv('GAE_LONG_APP_ID');
$req->setProject('projects/' . $proj);
$call = $client->ListTopics($req, [], ['call_credentials_callback' => function ($context) use($auth_credentials) {
    return $auth_credentials->updateMetadata([], $context->service_url);
}]);
list($response, $status) = $call->wait();
if ($status->code != 0) {
    echo 'gRPC to PubSub failed, printing RPC status:<br>';
    print_r($status);
    exit(1);
}
foreach ($response->getTopics() as $topic) {
    echo $topic->getName() . '<br>';
}