我想从 AsyncAPI 规范生成代码并尝试它是如何工作的。我的目标是为每个客户端只打开 1 个套接字,并通过该连接发送/接收不同类型的消息。我找不到任何可以向我展示如何生成代码并运行它的示例。
这是API yaml
asyncapi: '2.3.0'
info:
title: demo
version: '1.0.0'
description: websocket demo
servers:
test:
url: localhost
protocol: ws
channels:
data:
publish:
operationId: publishData
message:
$ref: '#/components/messages/dataMessage'
subscribe:
operationId: subscribeData
message:
$ref: '#/components/messages/dataMessage'
components:
messages:
dataMessage:
headers:
$ref: "#/components/schemas/MessageHeader"
payload:
oneOf:
- $ref: "#/components/schemas/FirstPayloadType"
- $ref: "#/components/schemas/SecondPayloadType"
schemas:
MessageHeader:
type: object
properties:
messageType:
enum:
- a
- b
- c
FirstPayloadType:
type: object
properties:
x:
type: string
y:
type: number
SecondPayloadType:
type: object
properties:
op:
type: string
tar:
type: string
然后我使用https://github.com/asyncapi/generator从这个 yaml 生成 java 代码
ag asyncapi.yaml @asyncapi/java-spring-template
这就是我卡住的地方,它使用springframework消息传递,我不知道如何在使用生成的消息处理程序时配置/实现它。或者我可能在 yaml 中遗漏了一些东西,所以它不能正确生成。