【问题标题】:Determining MIME type of Notification确定通知的 MIME 类型
【发布时间】:2019-01-16 08:56:02
【问题描述】:

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

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

我在订阅的属性中找不到任何内容。

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


向 ADN-AE1 发布通知 带有 XML 负载的 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

【问题讨论】:

    标签: onem2m


    【解决方案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 节“资源类型订阅”中指定。通知的订阅者可以将类型参数(例如ty=xml)添加到 notificationURI。如果省略,则 CSE 选择默认编码。

    【讨论】:

    • 谢谢。但我想知道的是通知的内容类型的确定。例如,当有人创建 ContentInstance 时,如果容器下有订阅,我需要发送通知。 NotificationURI 在订阅中定义,但我找不到订阅者想要的 Content-Type 的任何信息。我在订阅的属性中没有找到任何东西。 XML 编码的资源是否足够?对不起,我的英语很差。
    • 您的意思是,CSE 如何确定通知消息的编码类型(xml、json 或 cbor)?这在 TS-0001,第 9.6.8 节“资源类型订阅”中指定。查看 notificationURI 属性的规范。这里它表示通知的订阅者可以将类型参数 (ty=...) 添加到 URI。如果省略,则 CSE 可以选择默认编码。
    最近更新 更多