Appsync Javascript订阅启动问题



我正在尝试从vanilla javascript获得aws-appsync连接。建立连接并接收消息-数据:";{"类型":"ka"};。然而,当我尝试发送数据以开始订阅时,收到错误-

data: "{"type":"error","payload":{"errors":[{"errorType":"UnsupportedOperation","message":"unknown not supported through the realtime channel"}]}}"

这是一个简单的脚本,我正在使用它来测试订阅。报头和有效载荷是base64编码的。遵循本AWS文档进行订阅。

<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>

请参阅https://forums.aws.amazon.com/message.jspa?messageID=935705-存在的结论

若要使AppSync订阅与订阅传输ws一起工作,您需要按照本期GitHub中的说明进行操作:https://github.com/apollographql/apollo-feature-requests/issues/224

最新更新