Ошибка 410 при публикации сообщения через websocket шлюза aws api в JAVA - PullRequest
0 голосов
/ 08 мая 2019

Поскольку websocket - это новая функция, предоставляемая API-шлюзом, мне сложно найти документацию или примеры использования этого в JAVA.Я могу сослаться только на пример nodejs, ища похожие apis в aws sdk для java.Наконец, я могу установить соединение, и сервер (лямбда-функция) также может получить сообщение от клиента.Но я столкнулся с проблемами при попытке отправить сообщение клиенту с сервера.

Код выглядит следующим образом:

EndpointConfiguration endpointConfiguration = new EndpointConfiguration(
                "myendpoint.execute-api.ap-southeast-1.amazonaws.com/develop/", "ap-southeast-1");
        AmazonApiGatewayManagementApi api = AmazonApiGatewayManagementApiClientBuilder.standard()
                .withEndpointConfiguration(endpointConfiguration).build();
        PostToConnectionRequest request = new PostToConnectionRequest();
        String connectionId = "myconnectionId";
        request.withConnectionId(connectionId);
        request.withData(ByteBuffer.wrap("tset".getBytes()));
        api.postToConnection(request);

И информация об ошибке:

Exception in thread "main" com.amazonaws.AmazonServiceException: Unable to unmarshall exception response with the unmarshallers provided (Service: AmazonApiGatewayManagementApi; Status Code: 410; Error Code: null; Request ID: 66ef081c-70c5-11e9-9319-c18364b84c32)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1712)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1367)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1113)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:770)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:744)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:726)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:686)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:668)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:532)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:512)
    at com.amazonaws.services.apigatewaymanagementapi.AmazonApiGatewayManagementApiClient.doInvoke(AmazonApiGatewayManagementApiClient.java:273)
    at com.amazonaws.services.apigatewaymanagementapi.AmazonApiGatewayManagementApiClient.invoke(AmazonApiGatewayManagementApiClient.java:240)
    at com.amazonaws.services.apigatewaymanagementapi.AmazonApiGatewayManagementApiClient.invoke(AmazonApiGatewayManagementApiClient.java:229)
    at com.amazonaws.services.apigatewaymanagementapi.AmazonApiGatewayManagementApiClient.executePostToConnection(AmazonApiGatewayManagementApiClient.java:195)
    at com.amazonaws.services.apigatewaymanagementapi.AmazonApiGatewayManagementApiClient.postToConnection(AmazonApiGatewayManagementApiClient.java:167)
    at com.XXX.XXX.XXX.api.handler.WebsocketTestHandler.main(WebsocketTestHandler.java:114)

Ошибка указывает на «api.postToConnection (request);»Возможно, у моего кода есть некоторые проблемы, пожалуйста, помогите мне или дайте мне образец справочной документации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...