oneM2M数据通知处理程序未被调用

问题描述 投票:1回答:2

我是onem2m的新手,并使用IoTDM Karaf实现来学习初始步骤。我也使用来自同一项目的邮递员包作为学习工具。我也可以从我自己的代码(html,ajax,php)做CRUD操作和其他直接操作。我已经浏览了规范文档(虽然不是完整的包,但是相当多)和开发人员指导家庭照明和实现示例的示例。

我现在被困住的地方是我已成功注册订阅,通知uri“nu”指向同一网络上不同apache服务器中的php。 Postman / Google Rest客户端可以向其发布数据。我甚至添加了一个CORS标题以避免任何疑问。我已经指定了“nu”:http // full IP / phpfile.php。然后我从Postman创建一个内容实例。我期待我的php被调用。这个期望有效吗?

我只是将发布数据转储到/ var / www / html文件夹中的文件中。这按预期工作。我测试了写一个小的html并从另一台服务器运行它。所以它不是CORS问题或文件系统访问问题。通知实施是否到位?我的兴趣不在于IoT边缘设备端,而在后端我想从设备收集数据。我没有看到任何详细说明通知处理程序实现的示例。

任何指针,即使不是直接答案也会有所帮助。提前致谢。

notifications subscription onem2m
2个回答
0
投票

大跃进。我有通知处理程序来打我的回调php。首先,我使用了ODL IoTDM的“碳”释放。然后我不得不安装功能odl-iotdm-onem2m。这个附带一个odl-onem2m-notifier,我认为它是旧服务器中缺少的组件。现在,当我注册订阅,并添加一个内容实例时,我的php被调用。

我没有看到来自@akr的请求验证和其他此类提示。我想我必须找到一个更新的服务器实现。但我想,这个问题得到了回答。

非常感谢@akr的耐心和回应。


0
投票

在创建<subscription>资源时,托管CSE可以发送通知以执行订阅验证。此验证的接收方是<subscription>中设置的notificationURI。通过这种方式,CSE确保接收器确实是能够并且应该处理通知的接收器。

为此,在创建<subscription>资源之前,通知接收器(您的PHP脚本)必须正在运行并正确回答verificationRequest。否则,CSE不得向给定的URI发送通知。

您的通知接收器是否正常运行并且是否正确回答了verifyRequest?

另请参见“TS-0004-服务层核心协议规范”,“7.5.1.2.2 <订阅>资源的通知”一章。

更新

通知服务器应检查vrq元素的POST请求的内容。这表示验证请求。如果服务器想要接受请求,它应该返回HTTP错误代码“200”以及值为“2000”的响应头“X-M2M-RSC”。

© www.soinside.com 2019 - 2024. All rights reserved.