blob: e785debd03a0b16d8194e6cdab3f06e74fff0b53 [file] [log] [blame]
<?php
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
namespace Apache\Rocketmq;
require 'vendor/autoload.php';
use Apache\Rocketmq\V2\MessageQueue;
use Apache\Rocketmq\V2\MessagingServiceClient;
use Apache\Rocketmq\V2\QueryRouteRequest;
use Apache\Rocketmq\V2\ReceiveMessageRequest;
use Apache\Rocketmq\V2\Resource;
use Grpc\ChannelCredentials;
use const Grpc\STATUS_OK;
class Producer
{
public function init()
{
/**
* Client ID is currently concatenated using a fixed host name to
* facilitate code debugging.
*/
$clientId = 'missyourlove' . '@' . posix_getpid() . '@' . rand(0, 10) . '@' . $this->getRandStr(10);
$client = new MessagingServiceClient('rmq-cn-cs02xhf2k01.cn-hangzhou.rmq.aliyuncs.com:8080', [
'credentials' => ChannelCredentials::createInsecure(),
'update_metadata' => function ($metaData) use ($clientId) {
$metaData['headers'] = ['clientID' => $clientId]; // Pass the ClientID to the server through the header
return $metaData;
}
]);
$qr = new QueryRouteRequest();
$rs = new Resource();
$rs->setResourceNamespace('');
$rs->setName('normal_topic');
$qr->setTopic($rs);
$status = $client->QueryRoute($qr)->wait();
var_dump($status); // This prints out the response data returned by the server
}
public function getRandStr($length){
//Character combinations
$str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$len = strlen($str)-1;
$randstr = '';
for ($i=0;$i<$length;$i++) {
$num=mt_rand(0,$len);
$randstr .= $str[$num];
}
return $randstr;
}
}
$xx = new Producer();
$xx->init();