12장. 상호 운용성


이 장에서는 다른 AMQ 구성 요소와 함께 AMQ JavaScript를 사용하는 방법에 대해 설명합니다. AMQ 구성 요소의 호환성 개요는 제품 소개 를 참조하십시오.

12.1. 다른 AMQP 클라이언트와 상호 작용

AMQP 메시지는 AMQP 유형 시스템을 사용하여 구성됩니다. 이러한 공통 형식은 다른 언어의 AMQP 클라이언트가 서로 상호 운용할 수 있는 이유 중 하나입니다.

메시지를 보낼 때 AMQ JavaScript는 언어 네이티브 유형을 AMQP 인코딩 데이터로 자동으로 변환합니다. 메시지를 수신하면 역방향 변환이 수행됩니다.

참고

AMQP 유형에 대한 자세한 내용은 Apache Cryostat 프로젝트에서 유지 관리하는 대화형 유형 참조 에서 확인할 수 있습니다.

표 12.1. AMQP 유형
AMQP 유형설명

null

빈 값

부울

true 또는 false 값

char

단일 유니코드 문자

string

유니코드 문자 시퀀스

바이너리

바이트 시퀀스

byte

서명된 8비트 정수

short

서명된 16비트 정수

int

부호 있는 32비트 정수

long

부호 있는 64비트 정수

ubyte

서명되지 않은 8비트 정수

ushort

서명되지 않은 16비트 정수

uint

서명되지 않은 32비트 정수

ulong

서명되지 않은 64비트 정수

플로트

32비트 부동 소수점 숫자

double

64비트 부동 소수점 숫자

array

단일 형식의 값 시퀀스

list

변수 유형 값의 시퀀스

map

고유 키에서 값으로 매핑

UUID

범용 고유 식별자

기호

제한된 도메인에서 7비트 ASCII 문자열

timestamp

시간 내 절대 지점

JavaScript는 AMQP에서 인코딩할 수 있는 것보다 기본 유형이 적습니다. 특정 AMQP 유형이 포함된 메시지를 보내려면 rhea/types.js 모듈에서 wrap_ 함수를 사용합니다.

표 12.2. 인코딩 전 및 디코딩 후 AMQ JavaScript 유형
AMQP 유형인코딩 전 AMQ JavaScript 유형디코딩 후 AMQ JavaScript 유형

null

null

null

boolean

boolean

boolean

char

wrap_char(number)

숫자

string

string

string

바이너리

wrap_binary(string)

string

byte

wrap_byte(number)

숫자

short

wrap_short(number)

숫자

int

wrap_int(number)

숫자

long

wrap_long(number)

숫자

ubyte

wrap_ubyte(number)

숫자

ushort

wrap_ushort(number)

숫자

uint

wrap_uint(number)

숫자

ulong

wrap_ulong(number)

숫자

플로트

wrap_float(number)

숫자

double

wrap_double(number)

숫자

array

wrap_array(Array, code)

array

list

wrap_list(Array)

array

map

wrap_map(object)

object

uuid

wrap_uuid(number)

숫자

기호

wrap_symbol(string)

string

timestamp

wrap_timestamp(number)

숫자

표 12.3. AMQ JavaScript 및 기타 AMQ 클라이언트 유형 (1 of 2)
인코딩 전 AMQ JavaScript 유형AMQ C++ 유형AMQ .NET 유형

null

nullptr

null

boolean

bool

system.Boolean

wrap_char(number)

wchar_t

system.Char

string

std::string

system.String

wrap_binary(string)

proton::binary

System.Byte[]

wrap_byte(number)

int8_t

system.SByte

wrap_short(number)

int16_t

System.Int16

wrap_int(number)

int32_t

system.Int32

wrap_long(number)

int64_t

System.Int64

wrap_ubyte(number)

uint8_t

system.Byte

wrap_ushort(number)

uint16_t

System.UInt16

wrap_uint(number)

uint32_t

system.UInt32

wrap_ulong(number)

uint64_t

System.UInt64

wrap_float(number)

플로트

system.Single

wrap_double(number)

double

system. Cryostat

wrap_array(Array, code)

-

-

wrap_list(Array)

std::vector

Amqp.List

wrap_map(object)

std::map

Amqp.Map

wrap_uuid(number)

proton::uuid

system.Guid

wrap_symbol(string)

proton::symbol

Amqp.Symbol

wrap_timestamp(number)

proton::timestamp

System.DateTime

표 12.4. AMQ JavaScript 및 기타 AMQ 클라이언트 유형 (2 of 2)
인코딩 전 AMQ JavaScript 유형AMQ Python 유형AMQ Ruby 유형

null

없음

nil

boolean

bool

true, false

wrap_char(number)

unicode

문자열

string

unicode

문자열

wrap_binary(string)

바이트

문자열

wrap_byte(number)

int

정수

wrap_short(number)

int

정수

wrap_int(number)

long

정수

wrap_long(number)

long

정수

wrap_ubyte(number)

long

정수

wrap_ushort(number)

long

정수

wrap_uint(number)

long

정수

wrap_ulong(number)

long

정수

wrap_float(number)

플로트

플로트

wrap_double(number)

플로트

플로트

wrap_array(Array, code)

proton.Array

array

wrap_list(Array)

list

array

wrap_map(object)

dict

hash

wrap_uuid(number)

-

-

wrap_symbol(string)

str

기호

wrap_timestamp(number)

long

시간

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.