使用消息服务(MNS)订阅阿里云物联网平台设备消息PHP示例参考

简介: 物联网平台服务端订阅支持将设备消息发送至消息服务(MNS),云端应用通过监听MNS队列,获取设备消息。本文主要演示使用最新版MNS PHP SDK消费订阅到MNS Queue中的消息。

概述

物联网平台服务端订阅支持将设备消息发送至消息服务(MNS),云端应用通过监听MNS队列,获取设备消息。本文主要演示使用最新版MNS PHP SDK消费订阅到MNS Queue中的消息。

操作步骤

1、服务端订阅配置

参考链接,链接中介绍了服务端MNS订阅的配置及使用Java SDK获取Queue中消息的方法。

2、MNS PHP SDK安装

composer.json

{
  "require": {
     "aliyun/aliyun-mns-php-sdk": ">=1.0.0"
  }
}

Install

composer install

3、Code Sample

<?php

require_once 'vendor/autoload.php';

use AliyunMNS\Client;
use AliyunMNS\Exception\MnsException;

class CreateQueueAndSendMessage
{
    private $accessId;
    private $accessKey;
    private $endPoint;
    private $client;
    private $queueName;

    public function __construct($accessId, $accessKey, $endPoint, $queueName)
    {
        $this->accessId = $accessId;
        $this->accessKey = $accessKey;
        $this->endPoint = $endPoint;
        $this->queueName = $queueName;
    }

    public function run()
    {
        $this->client = new Client($this->endPoint, $this->accessId, $this->accessKey);

        $queue = $this->client->getQueueRef($this->queueName);

        $receiptHandle = NULL;
        try
        {
            // when receiving messages, it's always a good practice to set the waitSeconds to be 30.
            // it means to send one http-long-polling request which lasts 30 seconds at most.
            $res = $queue->receiveMessage(30);
            echo "ReceiveMessage Succeed! \n";
            
            // json 对象转数组
            $aTest = json_decode($res->getMessageBody(), true);
            // 获取  payLoad 的值
            $payLoad = $aTest["payload"];
            
            // base64 解码
            echo base64_decode($payLoad);
            $receiptHandle = $res->getReceiptHandle();
        }
        catch (MnsException $e)
        {
            echo "ReceiveMessage Failed: " . $e;
            return;
        }
        
        // 4. delete message
        try
        {
            $res = $queue->deleteMessage($receiptHandle);
            echo "<br/> DeleteMessage Succeed! \n";
        }
        catch (MnsException $e)
        {
            echo "DeleteMessage Failed: " . $e;
            return;
        }
    }
}

// ak,sk信息获取可以参考链接:https://yq.aliyun.com/articles/693979?spm=a2c4e.11155435.0.0.5ad926a2HiTVqH
// endPoint、queueName获取到MNS管理控制台:https://mns.console.aliyun.com/
$accessId = "********";
$accessKey = "********";
$endPoint = "http://********.mns.cn-shanghai.aliyuncs.com/";
$queueName = "aliyun-iot-********";

if (empty($accessId) || empty($accessKey) || empty($endPoint))
{
    echo "Must Provide AccessId/AccessKey/EndPoint to Run the Example. \n";
    return;
}

$instance = new CreateQueueAndSendMessage($accessId, $accessKey, $endPoint,$queueName);
$instance->run();

?>

4、项目结构

_

5、运行结果
_

参考链接

MNS PHP SDK

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
10天前
|
安全 物联网 物联网安全
智能物联网安全:物联网设备的防护策略与最佳实践
【10月更文挑战第26天】随着物联网(IoT)技术的快速发展,智能设备已广泛应用于智能家居、工业控制和智慧城市等领域。然而,设备数量的激增也带来了严重的安全问题,如黑客攻击、数据泄露和恶意控制,对个人隐私、企业运营和国家安全构成威胁。因此,加强物联网设备的安全防护至关重要。
29 7
|
12天前
|
监控 安全 物联网
确保互联世界中物联网设备安全的三个技巧
确保互联世界中物联网设备安全的三个技巧
|
1月前
|
物联网 5G 智能硬件
物联网卡:物联网卡不支持语音通话,是如何实现设备间的数据传输和通信的?
物联网卡(IoT SIM卡)通常被设计用于支持物联网(IoT)设备之间的数据传输,而不直接支持语音通话功能。这是因为物联网设备主要关注的是数据的收集、传输和处理,而不是语音通信。为了实现设备间的数据传输和通信,物联网卡及其背后的技术采用了多种方法,主要包括但不限于以下几种方式:
物联网卡:物联网卡不支持语音通话,是如何实现设备间的数据传输和通信的?
|
1月前
|
传感器 机器学习/深度学习 存储
物联网设备精细化管理系统解决方案
随着科技的进步,物联网技术作为新一代信息技术的核心部分,正在深刻改变各行业的生产和管理方式。其在资产管理、智慧城市、能源管理和智慧医疗等多个领域的广泛应用,不仅提高了运营效率,还促进了资源优化配置和精细化管理。本文详细介绍了物联网的基础概念及其在设备精细化管理系统中的具体应用方案,展示了如何通过智能感知层建设、数据处理分析平台以及精细化管理应用,实现设备的实时监控、预测性维护和能耗管理等功能,从而帮助企业提升竞争力,降低成本,并推动社会向更智能化、绿色化的方向发展。
74 2
物联网设备精细化管理系统解决方案
|
20天前
|
物联网
物联网卡不能使用在什么设备上
“物联网卡不能使用在什么设备上”这一操作或规定,通常基于物联网卡的特性、使用条款以及设备兼容性等因素。以下是对这一问题的详细分析和操作建议:
|
23天前
|
存储 监控 物联网
医疗物联网设备精细化管理系统解决方案
华汇数据智慧医院物联网管理系统解决方案是一种集物联网、云计算、大数据和人工智能等先进技术于一体的综合性解决方案,旨在提升医院的运营效率、医疗质量和患者满意度。
61 3
|
28天前
|
安全 物联网
物联网卡不能更换设备使用吗
物联网卡(IoT SIM卡)是否允许更换设备使用,这主要取决于物联网服务提供商的具体政策和服务条款。通常,物联网卡是为特定设备或应用场景设计的,因此一些服务提供商会限制卡的更换使用,主要是出于安全、管理、网络优化和避免滥用等考虑
|
9天前
|
安全 物联网 物联网安全
智能物联网安全:物联网设备的防护策略与最佳实践
【10月更文挑战第27天】随着物联网技术的快速发展,智能设备已广泛应用于生活和工业领域。然而,物联网设备的安全问题日益凸显,主要威胁包括中间人攻击、DDoS攻击和恶意软件植入。本文探讨了物联网设备的安全防护策略和最佳实践,包括设备认证和加密、定期更新、网络隔离以及安全标准的制定与实施,旨在确保设备安全和数据保护。
27 0
|
2月前
|
安全 物联网 定位技术
2G网络和基站的撤销对物联网设备的影响
2G网络和基站的撤销对物联网设备的影响是多方面的,以下是对这一影响的详细分析:
2G网络和基站的撤销对物联网设备的影响
|
1月前
|
物联网 数据安全/隐私保护
物联网:物联网卡不能使用在什么设备上
物联网卡是专为物联网设备设计的SIM卡,旨在连接非传统的、嵌入式或远程的设备到互联网。由于其特定的用途和设计,物联网卡并不适用于所有类型的设备,尤其是在以下几个方面,物联网卡通常不能或不建议使用在以下设备上:

热门文章

最新文章

相关产品

  • 物联网平台
  • 下一篇
    无影云桌面