onem2m数据通知处理程序未调用

时间:2019-02-07 13:09:13

标签: notifications subscription onem2m

我是onem2m的新手,并使用IoTDM Karaf实施来学习初始步骤。我还将来自同一项目的邮递员包用作学习工具。我也可以通过自己的代码(html,ajax,php)执行CRUD操作和其他直接操作。我已经阅读了规格文档(虽然不是完整的捆绑包,但是有很多),以及家庭照明的开发人员指南示例和实现示例。

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

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

任何指针,即使不是直接答案也有帮助。预先感谢。

2 个答案:

答案 0 :(得分:0)

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

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

您的通知接收器是否已启动并正在运行,并且是否正确回答了 verificationRequest

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

更新

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

答案 1 :(得分:0)

大飞跃。我得到了通知处理程序以击中我的回调php。首先,我使用了ODL IoTDM的“碳”版本。然后,我必须安装功能odl-iotdm-onem2m。这是一个odl-onem2m-notifier,我认为它是旧服务器中缺少的组件。现在,当我注册订阅并添加内容实例时,我的php就会被调用。

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

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