react-native-portavailable v1.0.1
react-native-portavailable
A React Native Package for checking tcp and udp port availability on native android.
This is an implementation coming from the Apache camel project.
Support
This package is only supported on android devices, since i'm not much of an iOS Developer. The source code is pretty much straightforward so feel free to submit a PR of an iOS port i'll be happy to merge ! :)
Install
npm i -S react-native-portavailableAndroid
Add the following line to the bottom of your project's
settings.gradlefile.project(':react-native-portavailable').projectDir = new File(settingsDir, '../node_modules/react-native-portavailable/android')Change the
includeline of your project'ssettings.gradleto include the:react-native-portavailableproject.include ':react-native-portavailable', ':app'Open your app's
build.gradlefile and add the following line to thedependenciesblock.compile project(":react-native-portavailable")In your app's
MainActivity.javafile, addnew PortAvailableReactModule()to the return statement of thegetPackages()function.
...
new MainReactPackage(),
new PortAvailableReactModule()
...- Then in the same file add the import statement :
import com.odinvt.portavailable.PortAvailableReactModule;
Usage
import PortAvailable from 'react-native-portavailable'API
The calls to PortAvailable methods are static so you can go ahead and use it directly.
Methods
PortAvailable.check(port) Checks if the port 'port' is available
- This will return a
Promiseinstance that resolves to abooleanof the availability of the port. We're handling sockets opened and closed on the native side so we do need to expect an async execution. There is no need to use acatchmethod on the Promise object since all the exceptions are caught on the native side and the Promise just resolves to false.
Example :
PortAvailable.check(48500).then(available => {
// 'available' is true if the port 48500 is available
})PortAvailable.checkRange(min_port, max_port, stop = 0) Checks which of the ports between 'min_port' and 'max_port' (included) are available
- This will return a
Promiseinstance that resolves to anarrayof the available ports. - The
stopparameter is optional and tells the function at how much available ports it should stop checking and resolve.stop = 0is the default value and it tells the function to just check all the ports untilmax_port.
Example :
PortAvailable.checkRange(48500, 48600, 5).then(ports => {
// 'ports' is an array of the available ports
// for example : ports = [48500, 48501, 48502, 48503, 48505] if 48504 is not available
})PortAvailable.getPorts() Returns the ports discovered by the last checkRange method call
- This will return an
arrayof the available ports. - The preferred way of getting the discovered ports is inside the
PortAvailable.checkRangethencallback. This method is provided so you can access the discovered ports anywhere on your application but only if you're sure that thePortAvailable.getPorts()call is made after thePortAvailable.checkRangePromise resolves .
Example :
let open_ports = PortAvailable.getPorts();
// open_ports = [48500, 48501, 48502, 48503, 48505]Babel
This component uses ES6. So if you're using Webpack you should launch babel on main.js and output to main-tf.js if for some reason the npm postinstall script didn't execute.
"postinstall": "babel main.js --out-file main-tf.js"