本文介绍如何使用PHP SDK中的sample代码,来完成创建主题、创建订阅、启动HttpEndpoint、发布消息、查看HttpEndpoint接收消息和删除主题操作。

步骤一:准备工作

  1. 下载最新版PHP SDK,解压后进入aliyun-mns-php-sdk-master/Samples/Topic子目录。
  2. 打开CreateTopicAndSendMessage.php文件,在文件中最下方配置AccessKeyId、AccessKeySecret、Endpoint,以及要推送到的HttpServer的IP地址和Port。
    • AccessKeyId、AccessKeySecret
    • Endpoint
      • 访问消息服务MNS的接入地址,请登录MNS控制台,单击右上角获取Endpoint查看。
      • 不同地域的接入地址不同。
    • IP
      • 公网能访问的IP地址。
  3. 修改SDK设置。

    CreateTopicAndSendMessage的代码顶部有一些设置,在使用SDK的时候需要做同样的设置。

    // require sdk里自带的一个autoload文件。
    require_once(dirname(dirname(dirname(__FILE__))).'/mns-autoloader.php');
    
    // 代码里需要用的一些php class。
    use AliyunMNS\Client;
    use AliyunMNS\Model\SubscriptionAttributes;
    use AliyunMNS\Requests\PublishMessageRequest;
    use AliyunMNS\Requests\CreateTopicRequest;
    use AliyunMNS\Exception\MnsException;       

步骤二:创建主题

如果之前未创建过主题,那么首先需要创建主题。默认创建的主题名称是CreateTopicAndPublishMessageExample,也可以修改代码指定主题名称。

// 1.生成一个CreateTopicRequest实例,参数传入topicName。这里可以同时传入TopicAttributes,以便在CreateTopic时同时设置自定义的Topic属性。
$request = new CreateTopicRequest($topicName);
try
{
        $res = $this->client->createTopic($request);
        echo "TopicCreated! \n";
}
catch (MnsException $e)
{
        // 2.可能因为网络错误,或者Topic已经存在等原因导致CreateTopic失败,这里CatchException并做对应的处理。
        echo "CreateTopicFailed: " . $e . "\n";
        echo "MNSErrorCode: " . $e->getMnsErrorCode() . "\n";
        return;

步骤三:启动 HttpEndpoint