我正在本机模块中创建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 + "¤tPage=" + 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,然后返回套接字对象,以便可以在我的本机应用程序中使用