按照建议,由于没有用于 gamelift 的 Javascript 客户端 SDK,我使用了 AWS javascript SDK。
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/GameLift.html#constructor-property
但是,我似乎无法工作,
我已经运行本地测试 gamelift 服务器进行测试,我可以像这样使用 aws CLI 命令进行通信
AWS gamelift describe-game-sessions --endpoint-url http://localhost:9080 --fleet-id fleet-123
但是,当我尝试从独立的 javascript(在 HTML 中)连接时,如果我将端点设置为 9080(与上面的 CLI 相同),则会出现网络错误。
我检查了本地服务器终端,它显示另外 3 个端口打开,5757、5758 和 5759。
我试图连接到 5758,因为它说它是一个 SDK 端口。但现在我收到 CORS 错误
Access to XMLHttpRequest at 'http://localhost:5758/' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
有没有使用 AWS Javascript SDK 连接到 Gamelift 服务器的示例?
这是我的代码
<script src="https://cdnjs.cloudflare.com/ajax/libs/aws-sdk/2.1085.0/aws-sdk.js" integrity="sha512-P8mvO6DiBR/wJa/s5Z24/UimPqKZEHjTle0Z8Fb4cSPE+x7QDJu+E1QO/YO7BP8Ek19I2Y+C8xuCZCaBtZKmZA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script>
var gamelift = new AWS.GameLift(
{endpoint : 'http://localhost:5758',
accessKeyId :'abcde',
secretAccessKey:'abcde',
region:'us-west-2'});
var params = {
FleetId: 'fleet-123d',
};
gamelift.describeGameSessions(params, function(err, data) {
if (err)
console.log(err);
//console.log(err, err.stack); // an error occurred
else
console.log(data); // successful response
});
</script>
任何人都可以帮忙吗?