NMEA数据的正确Content-Type头是什么?

4
我想在HTTP POST主体中发送一堆NMEA句子到我的服务器,但我不确定应该使用什么Content-Type
除了通用的text/plain之外,我没有找到适用于NMEA的标准IANA MIME类型。我应该使用自定义的MIME类型(例如application/vnd.myvnd.nmea),还是存在一个隐晦的事实标准?

1
很好的问题。我认为Content-Type头应该包含最外层容器。由于这些只是文本,您可以使用text/plain...但如果存在其他类型的内容,则可能更合适。我认为您关于供应商类型的想法是最好的。 - Brad
谢谢。请用该解释进行回答,以便我选择它作为正确答案。 - xOneca
我对我的答案并不完全有信心,所以我把它留作评论。我会更努力…… 我将开始一个赏金,并希望有人可以研究并确认我写的是否正确,或提出更正确的答案。 - Brad
1个回答

3
由于您提到了文本,我假设NMEA是指基于文本的规范NMEA-0183,根据维基百科的解释:
NMEA 0183是一种用于海洋电子设备之间通信的组合电气和数据规范,例如回声探测器、声纳、风速仪、陀螺罗经、自动驾驶仪、GPS接收器和许多其他类型的仪器。它已被国家海洋电子协会定义并受其控制。
或者从较新的NMEA标准NMEA-2000中派生的文本消息,这是一种基于二进制帧的协议,本质上是用于汽车网络中的CAN(控制器局域网)总线协议的配置文件。
官方的NMEA-0183规范停留在RS422串行线路上,该协议设计运行在该线路上。数据编码规定为ASCII,高位未使用。 NMEA-0183的主要公开参考来源是Eric Raymond的“NMEA REVEALED”
官方的NMEA-2000标准使用CAN总线的设备互连规范。

在IP网络上移动NMEA数据有一种专有(不常见)的标准,也有一组非专有协议更常用于此目的。这些都记录在KPLEX作者的一系列博客文章中,KPLEX是众所周知的NMEA-0183多路复用工具之一。特别有用的是题为“{{link1:“程序员的NMEA-0183 over IP:未写下的规则。”}}”的帖子。

Signal-K是一个开源项目,使用IANA标准协议将NMEA和其他数据类型封装到Web中,使用Json对象和TCP流,其中包括非官方名称如signalk-tcp。SignalK规范在这里

其他涉及NMEA数据的众所周知的开源项目包括:

目前还没有为NMEA-0183、NMEA-2000或CAN总线注册IANA MIME类型。我下载并搜索了链接项目的源代码,发现没有任何相关的MIME类型定义在任何引用的项目或链接中。

因此,我们可以比较有把握地说,在涉及到NMEA数据时,不存在一个Content-Type晦涩难懂的事实上的标准


哇!这是很多信息。你的第一句话是正确的。我看到NEMEA的“经验法则”是发送纯TCP/UDP数据包,或者如果涉及HTTP,则作为其他低层协议的一部分(即嵌入JSON、XML等)。 - xOneca
如果您正在通过HTTP发送NMEA数据,仍然没有理由将其嵌入JSON或XML中。它本来就很好,并且甚至可以被Web浏览器流式传输。 - Brad
我同意你的看法,@Brad。我的意思是很多应用在使用 HTTP/WebSockets 时都会使用JSON。 - xOneca

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接