你有几件事要考虑。有线协议和消息协议。
有线协议:
这将包含诸如消息 ID、发件人、主题、类型、时间戳、消息大小等内容。这与消息协议一样重要。为了推荐 Wire 协议,我需要更多地了解您的系统。如果您想要一个适用于所有这些平台的简单 Wire 协议,您可以查看 STOMP。它是一个简单的基于 ASCII 的消息传输协议。它对于调试消息等很有用。ActiveMQ 和 RabbitMQ 是支持 STOMP 的代理系统。我更喜欢 RabbitMQ。
简单的 STOMP 消息:
SEND
destination:/queue/a
content-type:text/plain
hello queue a
^@
您还可以将 HTTP 用作简单的有线协议。它很简单,并且像 STOMP 一样基于 ASCII。另外 SOAP 通常使用 HTTP 作为它的传输协议。SOAP 通常还使用 XML 作为其消息格式来编码消息的信封、标头和正文。
还有 JSON-RPC。
消息格式:
Wire 协议中的大部分信息用于确定消息的去向、是否到达那里、消息中包含什么类型的信息等。通常它仅由您放置的消息传递系统用于发送和接收消息. 您的业务逻辑感兴趣的是消息内容本身。您需要一种对双方都理解的内容进行编码的方法。有很多选择:JSON、XML、Google 的 protobuf(二进制)。
如果没有更多关于您需要做什么的知识,我将很难推荐其中的任何一个。他们每个人都有自己的长处和短处。
有线和消息协议的真实映射:
UPS、美国邮政、联邦快递 = 妈妈的电汇协议信、贷款申请、生日贺卡 = 信息