首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在React中运行AWS而没有调用尝试超过错误?

如何在React中运行AWS而没有调用尝试超过错误?
EN

Stack Overflow用户
提问于 2021-03-18 08:37:05
回答 1查看 144关注 0票数 0

我试图建立一个反应电话应用程序,连接到AWS一旦启动。当我第一次使用博览运行这个应用程序时,我发现了一个错误,那就是我丢失了模块"Util“,所以我遵循了这个单独的线程来解决这个问题。之后,我又遇到了一个关于"filesys.existsSync不是函数“的问题,因此我跟踪了另一个线程来解决这个问题。

当我遵循第二个线程时,我通过websocket协议连接客户机,而不是使用证书。在进行了这些更改之后,我测试了连接是否在node.js文件中工作,并且没有任何问题地连接。我还可以确认,在没有AWS代码的情况下,React应用程序在世博会上运行时没有错误。然而,只要我尝试将两者结合起来,我就会得到下面的错误。

在博览中,我得到以下错误日志记录:

代码语言:javascript
复制
03:10
transform[stdout]: 
transform[stdout]: <--- Last few GCs --->
transform[stdout]: io[8441:0x9b1a90]    57166 ms: Mark-sweep 1387.9 (1429.3) -> 1386.5 (1430.8) MB, 3232.4 / 0.0 ms  (+ 145.9 ms in 119 steps since start of marking, biggest step 11.0 ms, walltime since start of marking 3448 ms) (average mu = 0.081, current mu = 0.022) alloca[8441:0x9b1a90]    60040 ms: Mark-sweep 1392.7 (1431.3) -> 1389.5 (1433.8) MB, 2729.3 / 0.0 ms  (+ 77.2 ms in 95 steps since start of marking, biggest step 10.8 ms, walltime since start of marking 2867 ms) (average mu = 0.056, current mu = 0.025) allocati
transform[stdout]: 
transform[stdout]: <--- JS stacktrace --->
transform[stdout]: 
transform[stdout]: ==== JS stack trace =========================================
transform[stdout]: 
transform[stdout]:     0: ExitFrame [pc: 0x74ec865452b]
transform[stdout]: Security context: 0x058c7e02ee11 <JSObject>
transform[stdout]:     1: /* anonymous */ [0xf6ddf9ef2c1] [/mnt/c/Users/aless/Desktop/UMNSVP/freya-app/new_branch/node_modules/@babel/traverse/lib/index.js:~75] [pc=0x74ec8b3ce6b](this=0x22bfe78ae6e9 <JSFunction traverse (sfi = 0x114f116c781)>,node=0x1467dbf20a49 <Node map = 0x1701e8edb8b1>,opts=0x1a7553733ca1 <Object map = 0x1b9c346b8861>,scope=0x3b66a58da481 <Scope map = 0x1b...
transform[stdout]: 
INFO
03:10
transform[stderr]: FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
INFO
03:10
transform[stderr]:  1: 0x7fcaeea2d46c node::Abort() [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:10
transform[stderr]:  2: 0x7fcaeea2d4b5  [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:10
transform[stderr]:  3: 0x7fcaeec59e6a v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:10
transform[stderr]:  4: 0x7fcaeec5a0e1 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:10
transform[stderr]:  5: 0x7fcaeeff4c66  [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:10
transform[stderr]:  6: 0x7fcaef006043 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:10
transform[stderr]:  7: 0x7fcaef006930 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:10
transform[stderr]:  8: 0x7fcaef00891d v8::internal::Heap::AllocateRawWithLigthRetry(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:10
transform[stderr]:  9: 0x7fcaef008975 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:10
transform[stderr]: 10: 0x7fcaeefd4dda v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationSpace) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:10
transform[stderr]: 11: 0x7fcaef26031e v8::internal::Runtime_AllocateInNewSpace(int, v8::internal::Object**, v8::internal::Isolate*) [/lib/x86_64-linux-gnu/libnode.so.64]
transform[stderr]: 12: 0x74ec865452b 
INFO
03:11
transform[stdout]: 
transform[stdout]: <--- Last few GCs --->
transform[stdout]: 
transform[stdout]: [8496:0x16dfa90]    64912 ms: Scavenge 1383.0 (1422.8) -> 1382.7 (1423.3) MB, 7.6 / 0.0 ms  (average mu = 0.141, current mu = 0.013) allocation failure 
transform[stdout]: [8496:0x16dfa90]    67294 ms: Mark-sweep 1383.4 (1423.3) -> 1383.1 (1423.3) MB, 2377.6 / 0.0 ms  (average mu = 0.080, current mu = 0.007) allocation failure scavenge might not succeed
transform[stdout]: 
transform[stdout]: 
transform[stdout]: <--- JS stacktrace --->
transform[stdout]: 
transform[stdout]: ==== JS stack trace =========================================
transform[stdout]: 
transform[stdout]:     0: ExitFrame [pc: 0x276fc0c5452b]
transform[stdout]: Security context: 0x04399ea2ee11 <JSObject>
transform[stdout]:     1: visitQueue [0x343848f072f9] [/mnt/c/Users/aless/Desktop/UMNSVP/freya-app/new_branch/node_modules/@babel/traverse/lib/context.js:~94] [pc=0x276fc0f33dec](this=0x0d7bc0a5b659 <TraversalContext map = 0x97d5ee8c759>,queue=0x0d7bc0a5b6e9 <JSArray[1]>)
transform[stdout]:     2: /* anonymous */ [0x591909657f9] [/mnt/c/Users/aless/Desktop/UMNSVP/freya-app/new_branch/node_module...
transform[stdout]: 
INFO
03:11
transform[stderr]: FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
INFO
03:11
transform[stderr]:  1: 0x7fc5340fd46c node::Abort() [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:11
transform[stderr]:  2: 0x7fc5340fd4b5  [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:11
transform[stderr]:  3: 0x7fc534329e6a v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:11
transform[stderr]:  4: 0x7fc53432a0e1 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:11
transform[stderr]:  5: 0x7fc5346c4c66  [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:11
transform[stderr]:  6: 0x7fc5346d6043 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:11
transform[stderr]:  7: 0x7fc5346d6930 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:11
transform[stderr]:  8: 0x7fc5346d891d v8::internal::Heap::AllocateRawWithLigthRetry(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:11
transform[stderr]:  9: 0x7fc5346d8975 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:11
transform[stderr]: 10: 0x7fc5346a4dda v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationSpace) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:11
transform[stderr]: 11: 0x7fc53493031e v8::internal::Runtime_AllocateInNewSpace(int, v8::internal::Object**, v8::internal::Isolate*) [/lib/x86_64-linux-gnu/libnode.so.64]
transform[stderr]: 12: 0x276fc0c5452b 
INFO
03:13
transform[stdout]: 
transform[stdout]: <--- Last few GCs --->
transform[stdout]: 
transform[stdout]: [8506:0x19f2a90]    65990 ms: Mark-sweep 1386.5 (1434.8) -> 1384.5 (1437.3) MB, 2579.9 / 0.0 ms  (average mu = 0.135, current mu = 0.007) allocation failure scavenge might not succeed
transform[stdout]: [8506:0x19f2a90]    68515 ms: Mark-sweep 1390.3 (1437.3) -> 1387.8 (1455.8) MB, 2511.2 / 0.0 ms  (average mu = 0.075, current mu = 0.005) allocation failure scavenge might not succeed
transform[stdout]: 
transform[stdout]: 
transform[stdout]: <--- JS stacktrace --->
transform[stdout]: 
transform[stdout]: ==== JS stack trace =========================================
transform[stdout]: 
transform[stdout]:     0: ExitFrame [pc: 0x21440d25452b]
transform[stdout]: Security context: 0x151eda32ee11 <JSObject>
transform[stdout]:     1: new NodePath [0x91e8a7e4669] [/mnt/c/Users/aless/Desktop/UMNSVP/freya-app/new_branch/node_modules/@babel/traverse/lib/path/index.js:~59] [pc=0x21440d4a75b7](this=0x3afbd5beda71 <NodePath map = 0x15f88580ba49>,hub=0x048270b825d9 <undefined>,parent=0x251db6f78119 <Node map = 0x15f885836291>)
transform[stdout]:     2: ConstructFrame [pc: 0x21440d199dc9]
transform[stdout]:     3: /* anonymous...
transform[stdout]: 
INFO
03:13
transform[stderr]: FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
INFO
03:13
transform[stderr]:  1: 0x7fa28e94d46c node::Abort() [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:13
transform[stderr]:  2: 0x7fa28e94d4b5  [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:13
transform[stderr]:  3: 0x7fa28eb79e6a v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:13
transform[stderr]:  4: 0x7fa28eb7a0e1 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:13
transform[stderr]:  5: 0x7fa28ef14c66  [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:13
transform[stderr]:  6: 0x7fa28ef26043 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:13
transform[stderr]:  7: 0x7fa28ef26930 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:13
transform[stderr]:  8: 0x7fa28ef2891d v8::internal::Heap::AllocateRawWithLigthRetry(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:13
transform[stderr]:  9: 0x7fa28ef28975 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:13
transform[stderr]: 10: 0x7fa28eef4dda v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationSpace) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:13
transform[stderr]: 11: 0x7fa28f180424 v8::internal::Runtime_AllocateInTargetSpace(int, v8::internal::Object**, v8::internal::Isolate*) [/lib/x86_64-linux-gnu/libnode.so.64]
transform[stderr]: 12: 0x21440d25452b 
INFO
03:14
transform[stdout]: 
transform[stdout]: <--- Last few GCs --->
transform[stdout]: 
transform[stdout]: [8516:0x902a90]    68473 ms: Scavenge 1380.1 (1421.3) -> 1379.8 (1421.8) MB, 4.9 / 0.0 ms  (average mu = 0.101, current mu = 0.033) allocation failure 
transform[stdout]: [8516:0x902a90]    68482 ms: Scavenge 1380.5 (1421.8) -> 1380.2 (1422.8) MB, 4.9 / 0.0 ms  (average mu = 0.101, current mu = 0.033) allocation failure 
transform[stdout]: [8516:0x902a90]    68490 ms: Scavenge 1380.8 (1422.8) -> 1380.5 (1423.3) MB, 4.8 / 0.0 ms  (average mu = 0.101, current mu = 0.033) allocation failure 
transform[stdout]: 
transform[stdout]: 
transform[stdout]: <--- JS stacktrace --->
transform[stdout]: 
transform[stdout]: ==== JS stack trace =========================================
transform[stdout]: 
transform[stdout]:     0: ExitFrame [pc: 0x6609d5d452b]
transform[stdout]: Security context: 0x1c8f4932ee11 <JSObject>
transform[stdout]:     1: /* anonymous */ [0xb2a7406f381] [/mnt/c/Users/aless/Desktop/UMNSVP/freya-app/new_branch/node_modules/@babel/traverse/lib/index.js:~75] [pc=0x6609d8687ab](this=0x3d6b1fee0e11 <JSFunction traverse (sfi = 0xbd7d0dec4d1)>,node=0x3f1c1c2c8599 <Node map = 0x3a29e80b98e1>,opts=0x3d6b1fee6479 <Object map = 0x3a29e80ae201>,scope=0x26e2353f0af9 <Scope map = 0x3a...
transform[stdout]: 
INFO
03:14
transform[stderr]: FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
INFO
03:14
transform[stderr]:  1: 0x7f2ebd76d46c node::Abort() [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:14
transform[stderr]:  2: 0x7f2ebd76d4b5  [/lib/x86_64-linux-gnu/libnode.so.64]
transform[stderr]:  3: 0x7f2ebd999e6a v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:14
transform[stderr]:  4: 0x7f2ebd99a0e1 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:14
transform[stderr]:  5: 0x7f2ebdd34c66  [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:14
transform[stderr]:  6: 0x7f2ebdd46043 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:14
transform[stderr]:  7: 0x7f2ebdd46930 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:14
transform[stderr]:  8: 0x7f2ebdd4891d v8::internal::Heap::AllocateRawWithLigthRetry(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:14
transform[stderr]:  9: 0x7f2ebdd48975 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:14
transform[stderr]: 10: 0x7f2ebdd14dda v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationSpace) [/lib/x86_64-linux-gnu/libnode.so.64]
INFO
03:14
transform[stderr]: 11: 0x7f2ebdfa031e v8::internal::Runtime_AllocateInNewSpace(int, v8::internal::Object**, v8::internal::Isolate*) [/lib/x86_64-linux-gnu/libnode.so.64]
transform[stderr]: 12: 0x6609d5d452b 

似乎aws中的某些东西正在进行某种不断失败的调用,所以它一直尝试进行该调用,直到超过它可以重试调用的次数为止。我不知道这会是什么,也不知道为什么会发生,但任何帮助都会受到感谢!下面有我的App.js文件。

代码语言:javascript
复制
import React, {Component} from 'react';
import { Button, Dimensions, StatusBar, StyleSheet, Text, TextInput, Platform, View, Image } from 'react-native';
import VerticalViewPager from 'react-native-vertical-view-pager/src/component/VerticalViewPager';
import { NavigationContainer } from '@react-navigation/native';
import Test from './Test.js';
import Car from './Car.js';
import Menu from './Menu.js';
import Charging from './Charging.js';

import Aws from 'aws-sdk/dist/aws-sdk-react-native';
import awsIot from 'aws-iot-device-sdk';
import './shim.js';

const AWS_REGION = 'us-east-2';
const AWS_COGNITO_IDENTITY_POOL = 'us-east-2:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX';
const AWS_IOT_ENDPOINT = 'XXXXXXXXXXXX.iot.us-east-2.amazonaws.com';

Aws.config.region = AWS_REGION
Aws.config.credentials = new Aws.CognitoIdentityCredentials({
    IdentityPoolId: AWS_COGNITO_IDENTITY_POOL
})

export default class App extends React.Component {
    constructor(props) {
        super(props);
        this.IotConnect();
    }

    IoTConnect() {
        Aws.config.credentials.get(() => {
            const config = {}
            let client
            
            config.host = AWS_IOT_ENDPOINT
            config.protocol = 'wss'
            config.clientId = `client-${Math.floor((Math.random() * 100000) + 1)}`
            config.accessKeyId = 'XXXXXXXXXXXXXX';
            config.secretKey = 'XXXXXXXXXXXXXXXXXXX';
            config.sessionToken = Aws.config.credentials.sessionToken
            
            client = awsIot.device(config)
            
            client.on('connect', () => {
                console.log("Successful connection");
            })
               
            client.on('error', error => {
                console.log(error)
            })
        })
    }

    render() {
      return (
        <NavigationContainer>
            <VerticalViewPager showsVerticalScrollIndicator={false}>
                <Test></Test>
                <Car></Car>
                <Menu></Menu>
                <Charging></Charging>
            </VerticalViewPager>
        </NavigationContainer>
      );
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-23 02:36:17

经过一段时间的周旋之后,我设法解决了这个问题。出于任何原因,expo/React不喜欢导入import Aws from 'aws-sdk/dist/aws-sdk-react-native';,因此我将其改为import Aws from 'aws-sdk'。即使修改了导入,我仍然可以调用Aws.config,因此不需要对代码进行大幅度的更改。我还将以下代码块移到IoTConnect函数中:

代码语言:javascript
复制
Aws.config.credentials = new Aws.CognitoIdentityCredentials({
    IdentityPoolId: AWS_COGNITO_IDENTITY_POOL
})

我不确定这是否会影响到它的运行方式,但比抱歉安全得多。

我注意到这个问题只发生在import Aws from 'aws-sdk/dist/aws-sdk-react-native';导入中,这意味着它因为某种原因而破坏了应用程序。我假设导入一次又一次地被调用,直到堆中没有任何空间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66687440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档