我想从AsyncAPI规范中生成代码,并尝试它的工作方式。我的目标是为每个客户端只打开一个套接字,并通过该连接发送/接收不同类型的消息。我找不到任何能向我展示如何生成代码并运行它的例子
这是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中遗漏了一些东西,所以它无法正常生成。
这是因为该模板不支持除Kafka
、AMQP
和MQTT
协议之外的任何其他协议。
截至本文撰写之时,还没有任何模板可供您为WebSocket协议生成Java代码。
如果你想让模板支持协议,请为它创建一个功能请求。
如果你愿意,你也可以自己编写模板。