WebSocket API - Posting to connection - Route not found error

0

Hi,

I'm using AWS Lambda to build a basic chat app, however when trying to post a message back to a connection I get an error

"No method found matching route test0/@connections/PxWP8cfSDoECFYw= for http method POST."

This is the code....

let api = new AWS.ApiGatewayManagementApi({
apiVersion : '2018-11-29',
endpoint : event.requestContext.domainName _ '/' _ event.requestContext.stage
});

await api.postToConnection({ ConnectionId: event.requestContext.connectionId, Data: 'callback'}).promise();

Many Thanks,
Ady

Ady
demandé il y a 4 ans1285 vues
3 réponses
1
endpoint : event.requestContext.domainName + '/' + event.requestContext.stage

"No method found matching route test0/@connections/PxWP8cfSDoECFYw= for http method POST."

Based on the error message and your code, I guess you're using a custom domain name with a base mapping to the API's "test0" stage. In the case,

https://YOUR_DOMAIN/test0/@connections/PxWP8cfSDoECFYw=

has a same effect to invoke:

https://[apiId].execute-api.<region>.amazonaws.com/test0/test0/@connections/PxWP8cfSDoECFYw=
(Note there is "test0" twice in the URI)

This is the reason why the route was resolved to "test0/@connections/PxWP8cfSDoECFYw=" instead of "@connections/PxWP8cfSDoECFYw=".

In the case, you should omit the stage name in the endpoint URI.

AWS
répondu il y a 4 ans
0

@jwaataws, thanks for the swift response.

And yes, looks like you described this scenario exactly, and your suggestion of removing the stage name from the endpoint see this working well.

Many Thanks,
Ady

Ady
répondu il y a 4 ans
0

Remove the stage from the url if you are using a custom domain.

Custom domain as in, I was using https://mywebsite.com, and when we append the stage, it was like https://mywebsite.com/dev. Then I got the above error. removing the stage fixed the issue

imtmh
répondu il y a 8 mois

Vous n'êtes pas connecté. Se connecter pour publier une réponse.

Une bonne réponse répond clairement à la question, contient des commentaires constructifs et encourage le développement professionnel de la personne qui pose la question.

Instructions pour répondre aux questions