第 14 章 互操作性


本章讨论了如何将 AMQ C++ 与其他 AMQ 组件结合使用。有关 AMQ 组件的兼容性概述,请参阅 产品简介

14.1. 与其他 AMQP 客户端交互

AMQP 消息使用 AMQP 类型系统 组成。这种通用格式是以不同语言的 AMQP 客户端能够相互互操作的原因之一。

发送消息时,AMQ C++ 会自动将语言原生类型转换为 AMQP 编码数据。收到信息时,反向转换就发生。

注意

有关 AMQP 类型的更多信息,请访问由 Apache Qpid 项目维护 的交互式类型参考

表 14.1. AMQP 类型
AMQP 类型描述

null

一个空值

布尔值

true 或 false 值

char

单个 Unicode 字符

string

一系列 Unicode 字符

二进制

一个字节序列

byte

签名的 8 位整数

short

签名的 16 位整数

int

签名的 32 位整数

long

签名的 64 位整数

ubyte

未签名的 8 位整数

ushort

未签名的 16 位整数

uint

未签名的 32 位整数

ulong

未签名的 64 位整数

浮点值

32 位浮点号

double

64 位浮点号

数组

单个类型的值的序列

list

变量类型的序列值

map

从不同键到值的映射

uuid

通用唯一标识符

符号

来自受限域的 7 位 ASCII 字符串

timestamp

一个绝对时间点

表 14.2. 在编码前和解码后 AMQ C++ 类型
AMQP 类型编码前的 AMQ C++ 类型解码后 AMQ C++ 类型

null

nullptr

nullptr

布尔值

bool

bool

char

wchar_t

wchar_t

string

std::string

std::string

二进制

proton::binary

proton::binary

byte

int8_t

int8_t

short

int16_t

int16_t

int

int32_t

int32_t

long

int64_t

int64_t

ubyte

uint8_t

uint8_t

ushort

uint16_t

uint16_t

uint

uint32_t

uint32_t

ulong

uint64_t

uint64_t

浮点值

浮点值

浮点值

double

double

double

list

std::vector

std::vector

map

std::map

std::map

uuid

proton::uuid

proton::uuid

符号

proton::symbol

proton::symbol

timestamp

proton::timestamp

proton::timestamp

表 14.3. AMQ C++ 和其他 AMQ 客户端类型(2 为 1)
编码前的 AMQ C++ 类型AMQ JavaScript 类型AMQ .NET 类型

nullptr

null

null

bool

布尔值

system.Boolean

wchar_t

number

system.Char

std::string

string

system.String

proton::binary

string

System.Byte[]

int8_t

number

system.SByte

int16_t

number

System.Int16

int32_t

number

System.Int32

int64_t

number

System.Int64

uint8_t

number

system.Byte

uint16_t

number

System.UInt16

uint32_t

number

System.UInt32

uint64_t

number

System.UInt64

浮点值

number

system.Single

double

number

system.Double

std::vector

Array

Amqp.List

std::map

object

Amqp.Map

proton::uuid

number

system.Guid

proton::symbol

string

Amqp.Symbol

proton::timestamp

number

System.DateTime

表 14.4. AMQ C++ 和其他 AMQ 客户端类型(2 为 2)
编码前的 AMQ C++ 类型AMQ Python 类型AMQ Ruby 类型

nullptr

nil

bool

bool

true, false

wchar_t

unicode

字符串

std::string

unicode

字符串

proton::binary

bytes

字符串

int8_t

int

整数

int16_t

int

整数

int32_t

long

整数

int64_t

long

整数

uint8_t

long

整数

uint16_t

long

整数

uint32_t

long

整数

uint64_t

long

整数

浮点值

浮点值

浮点值

double

浮点值

浮点值

std::vector

list

Array

std::map

dict

hash

proton::uuid

-

-

proton::symbol

str

符号

proton::timestamp

long

Time

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.