React Native SocketProtocol Error和TimeoutError

时间:2016-06-16 23:24:30

标签: ios websocket react-native

我似乎无法弄清楚这一点。当我打开我的React Native应用程序时,我得到了这些错误。我发现最好的是它与应用程序的捆绑方式有关。任何帮助将非常感谢和赞成!谢谢!

Error example

来自xCode的错误

2016-06-16 17:21:50.160 [warn][tid:com.facebook.react.JavaScript] [TimeoutError: Event response for 'login' timed out]
2016-06-16 17:21:51.580 [warn][tid:com.facebook.react.JavaScript] [SocketProtocolError: Socket hung

版本

   "react": "^15.1.0",  
   "react-native": "^0.27.2"  
   ... along with about 30 others

ios - AppDelegate.m

 jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];

  /**
   * OPTION 2
   * Load from pre-bundled file on disk. The static bundle is automatically
   * generated by the "Bundle React Native code and images" build step when
   * running the project on an actual device or running the project on the
   * simulator in the "Release" build configuration.
   */

  // jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];


  RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
                                                  moduleName:@"MyApp"
                                                  initialProperties:nil
                                                  launchOptions:launchOptions];

1 个答案:

答案 0 :(得分:1)

很长一段时间后,我意识到这实际上是我的React Dev Tools和HMR。我必须将Store Configure更新为以下内容:

OLD -----(下图)

    import Immutable from 'immutable';
    import { Platform } from 'react-native';
    import { createStore, applyMiddleware, compose } from 'redux';
    import thunk from 'redux-thunk';
    import reducer from '../reducers';

    const middlewares = [thunk]; 

let enhancer;
if (__DEV__) {
  const installDevTools = require('immutable-devtools');
  installDevTools(Immutable);

  const devTools = require('remote-redux-devtools');
  enhancer = compose(
    applyMiddleware(...middlewares),
    devTools({
      name: Platform.OS,
      hostname: 'localhost',
      port: 5678
    })
  );
} else {
  enhancer = applyMiddleware(...middlewares);
}

新-----(下图)

import Immutable from 'immutable';
import { Platform } from 'react-native';
import { createStore, applyMiddleware, compose } from 'redux';
import thunk from 'redux-thunk';
import reducer from '../reducers';

const middlewares = [thunk];

let enhancer = applyMiddleware(...middlewares);

export default function configureStore(initialState) {
  const store = createStore(reducer, initialState, enhancer);
  if (module.hot) {
    module.hot.accept(() => {
      store.replaceReducer(require('../reducers').default);
    });
  }
  return store;
}