0

按照建议,由于没有用于 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>

任何人都可以帮忙吗?

4

0 回答 0