从本地android模块返回对象以响应本地

时间:2019-05-29 09:25:21

标签: android sockets react-native

我正在本机模块中创建Socket IO对象,并从react native中调用它。在本机模块中创建Socket对象后,我想在我的react本机应用程序中使用它。

原因是我在本机模块中创建套接字是为了创建一个后台服务,该服务将使我的套接字保持活动状态,直到应用被终止。

我已经尝试过可写地图,但没有成功。但是,如果我返回简单的字符串,它就可以正常工作。

Android代码:


 @ReactMethod
    public void getSocket(String SocketURL, String CountryCode, String IP, String ConfigURL, String CSID, String CountryName, Promise promise) {

        try {

            IO.Options opts = new IO.Options();
            opts.reconnection = true;
            opts.secure = true;
            opts.transports = new String[]{"websocket", "polling"};
            opts.query = "location=" + CountryCode + "&ip=" + IP + "&currentPage=" + ConfigURL + "&csid=" + CSID + "&fullCountryName=" + CountryName;
            opts.reconnectionDelay = 1000;

            System.out.print(opts);
            mSocket = IO.socket(SocketURL, opts);

            System.out.print("Socket inside native call" + mSocket);

            promise.resolve(mSocket);
        } catch (Exception e) {
            System.out.print(e);
            promise.reject(e.toString());

        }
    }

反应本机部分:


  try {
    SOCKET = await NativeModules.Device.getSocket(SOCKET_LIVE_SERVER + SOCKET_CONFIG.nsp, SOCKET_CONFIG.countryCode, SOCKET_CONFIG.ip, SOCKET_CONFIG.url, SOCKET_CONFIG.csid, SOCKET_CONFIG.countryName)

    console.log('native socket', SOCKET)
  }
  catch (e) {
    console.error(e)
  }

我只想在本机模块中创建Socket,然后返回套接字对象,以便可以在我的本机应用程序中使用

0 个答案:

没有答案