AsyncAPI Websockets Spring 生成的代码和实现

AsyncAPI Websockets Spring generated code and implementation

我想根据 AsyncAPI 规范生成代码并试用它的工作原理。我的目标是只为每个客户端打开 1 个套接字,并通过该连接 send/receive 不同类型的消息。我找不到任何示例来说明如何生成代码和 运行 它。

这是 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 消息传递,我不知道如何在使用生成的消息处理程序时 configure/implement 它。或者我可能在 yaml 中遗漏了一些东西,所以它无法正确生成。

那是因为模板不支持 Kafka, AMQP, and MQTT` protocols 以外的任何内容。

截至撰写本文时,不存在任何模板供您为 WebSocket 协议生成 Java 代码。

如果您希望模板支持该协议,请为其创建功能请求。

如果您愿意,也可以author your own template