【发布时间】:2021-02-22 05:32:26
【问题描述】:
我正在尝试从 vanilla javascript 进行 aws-appsync 连接。建立连接并收到消息 - 数据:“{“type”:“ka”}”。但是,当我尝试发送数据以开始订阅时,出现错误 -
data: "{\"type\":\"error\",\"payload\":{\"errors\":[{\"errorType\":\"UnsupportedOperation\",\"message\":\"unknown not supported through the realtime channel\"}]}}"
这是我用来测试订阅的简单脚本。标头和有效负载是 base64 编码的。关注thisAWS 文档进行订阅。
<html>
Hello World
<button onClick="subscribeToEvt()">Click here to Subscribe</button>
<script type="text/javascript">
var Socket = new WebSocket("wss://XXXXXXXXXX.appsync-realtime-api.us-west-2.amazonaws.com/graphql?header=eyAiXXXXXXXXXXXXXXXXXXXXXXXIiB9&payload=e30=", "graphql-ws");
Socket.onopen = function(evt) {
console.log(evt);
// Web Socket is connected, send data using send()
Socket.send("{ \"type\": \"connection_init\" }");
alert("Message is sent...");
};
Socket.onmessage = function (evt) {
var received_msg = evt.data;
console.log(evt);
alert("Message is received...");
};
function subscribeToEvt(){
Socket.send("{\"id\":\"1\",\"type\":\"start\",\"payload\":{\"variables\":{\"sessionID\":\"659d86ae-ec0c-4170-9866-b436a981ce29\"},\"extensions\":{\"authorization\":{\"host\":\"XXXXXXXXXX.appsync-api.us-west-2.amazonaws.com\",\"x-api-key\":\"XXXXXXXXXX\"}},\"operationName\":\"routeOrder\",\"query\":\"subscription routeOrder {\\n routeOrder {\\n id\\n site_id\\n route_id\\n driver_id\\n truck_id\\n \\n }\\n}\\n\",\"data\":\"{\\\"variables\\\":{\\\"sessionID\\\":\\\"659d86ae-ec0c-4170-9866-b436a981ce29\\\"},\\\"extensions\\\":{},\\\"operationName\\\":\\\"routeOrder\\\",\\\"query\\\":\\\"subscription routeOrder { \\n routeOrder {\\n id\\n site_id\\n route_id\\n driver_id\\n truck_id\\n }\\n }\\\", }n}n\\\"}");
alert('sent');
}
</script>
</html>
【问题讨论】:
标签: aws-appsync