1
votes

API Amazon AWS Websocket - Interdit lors de l'envoi de messages

J'essaie d'implémenter l'api websocket pour mon projet, alors je regardais ce tutoriel https://aws.amazon.com/blogs/compute/announcing-websocket-apis-in-amazon-api-gateway/

J'ai essayé de déployer l'application de chat simple qu'ils ont liée https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:729047367331:applications~simple-websockets-chat-app

J'ai pu me connecter avec succès en utilisant wscat -c wss: // url, mais lorsque j'essaie d'envoyer un message, j'obtiens l'erreur suivante (il y a des identifiants réels, je ne sais tout simplement pas d'où ils sont générés, alors je les ai laissés caché)

{"message": "Forbidden", "connectionId":"sample_id", "requestId":"sample_id"}

Je ne suis pas vraiment sûr de ce qui ne va pas car il s'agit d'une version complète (j'ai réussi à me déployer et à me connecter?) Et j'aimerais beaucoup d'aide


4 commentaires

Avez-vous trouvé une solution à cela? Je suis coincé dans le même problème


Malheureusement, je ne l'ai pas fait, s'il vous plaît laissez-moi savoir si vous le faites


Idem ici, comme solution de contournement, j'utilise en fait un serveur Websocket tiers .


En outre, cela a été discuté ici


4 Réponses :


1
votes

Une fois connecté, essayez {"message" : "sendMessage", "data" :" hi"} .


0 commentaires

0
votes

grâce à la solution fournie par @prachiSingh, a pu envoyer un exemple de message en le peaufinant un peu .... {"message": "sendmessage", "data": "hello"}. Fondamentalement, utiliser toutes les minuscules pour sendmessage.


2 commentaires

Veuillez décider s'il s'agit d'un "Merci" (dans ce cas, veuillez supprimer le message, car il ne s'agit pas d'une réponse) ou d'une réponse (dans ce cas, supprimez le "merci" et rendez la partie de réponse utile plus évidente).


Veuillez ne pas ajouter «merci» comme réponse. Ils ne fournissent pas vraiment de réponse à la question et peuvent être perçus comme du bruit par ses futurs visiteurs. Une fois que vous gagnez assez réputation , vous gagnerez des privilèges à Upvote réponses que vous aimez. De cette façon, les futurs visiteurs de la question verront un nombre de votes plus élevé sur cette réponse, et le répondant sera également récompensé par des points de réputation. Voir Pourquoi voter est important .



0
votes

Cela a fonctionné pour moi nécessaire pour stringifier l'objet et passer, l'action et les données

var test = { action: "sendmessage", data: "hello world" };

ws.on("open", function open() {
  ws.send(JSON.stringify(test));
});


0 commentaires

0
votes

C'est ce que je fais mais j'ai toujours la même chose

{"message": "Forbidden", "connectionId": "sample_id", "requestId": "sample_id"}

var test = { action: "sendmessage", data: "hello world" };
        connection.onopen = () => {
            connection.send(JSON.stringify(test));
            console.log("connection open?????");
        };
        connection.onerror = error => {
            console.log(`WebSocket error: ${error}`);
        };
        connection.onmessage = e => {
            console.log("On message come here?????")
            console.log("EEEE", JSON.stringify(e));
            console.log(e.data);
        };


0 commentaires