2

我是 OneM2M 协议的新手。搜索 OneM2M TS0001 文档时,我不知道确定 Notification MIME 类型。

如何确定通知的 MIME 类型(例如“应用程序/json”、“应用程序/xml”)?

我在订阅的属性中找不到任何东西。

这是来自以下站点的应用程序开发人员指南示例。他们是如何决定将此通知作为“应用程序/xml”类型发送的?


使用 XML 有效负载向 ADN-AE1 HTTP 请求发布通知

POST / HTTP/1.1
Host: 192.168.0.10:9090
X-M2M-Origin: /mn-cse
X-M2M-RI: notif-12345
Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8"?>
<m2m:sgn xmlns:m2m="http://www.onem2m.org/xml/protocols" rn="cin-394798749">
  <nev>
    <rep>
      <m2m:cin>
        <ty>4</ty>
        <ri>cin-394798749</ri>
        <pi>cnt-790965889</pi>
        <ct>20150925T050534</ct>
        <lt>20150925T050534</lt>
        <et>20151107T154802</et>
        <st>0</st>
        <cnf>text/plain:0</cnf>
        <cs>3</cs>
        <con>ON</con>
      </m2m:cin>
    </rep>
  </nev>
  <sur>/mn-cse/sub-856593979</sur>
</m2m:sgn>

http://www.onem2m.org/application-developer-guide/implementation/notifications

4

1 回答 1

1

您应该查看 TS-0004“服务层核心协议规范”,第 6.7 节“oneM2M 特定 MIME 媒体类型”。在那里您可以找到所有 oneM2M 特定的 MIME 类型。

根据该表,通知和 XML 编码的正确 MIME 类型是application/vnd.onem2m-ntfy+xml

也就是说,您还可以检查 TS-0009“HTTP 协议绑定”,第 6.4.2 节“接受”和 6.4.3“内容类型”。在这里,规范说,例如对于Content-Type

任何包含消息正文的 HTTP 请求或响应都应包括设置为“application/xml”、“application/json”或 oneM2M TS-0004 第 6.7 条中定义的 oneM2M 定义的媒体类型之一的 Content-type 标头。

由于可以通过查看元素 *m2m:sgn" 来明确确定资源的类型,因此将 *application/xml" 设置为 XML 编码资源的 Content-Type 通常就足够了。

您可以在http://www.onem2m.org/technical/published-drafts下载最新版本的 oneM2M 规范

更新

CSE 通过查看notificationURI属性的可选ty参数来确定通知消息的编码类型(xml、json 或 cbor)。

这在 TS-0001,第 9.6.8 节“资源类型订阅”中指定。通知的订阅者可以向notificationURI添加类型参数(例如ty=xml)。如果省略,则 CSE 选择默认编码。

于 2019-01-16T21:22:23.963 回答