An open API service indexing awesome lists of open source software.

https://github.com/RichardRNStudio/react-native-find-local-devices

This package loads all of the local devices for react native
https://github.com/RichardRNStudio/react-native-find-local-devices

android local-network network-discovery portscanning react-native websocket-connection

Last synced: over 1 year ago
JSON representation

This package loads all of the local devices for react native

Awesome Lists containing this project

README

          

🚀 react-native-find-local-devices

[![npm version](https://img.shields.io/npm/v/react-native-find-local-devices.svg)](https://www.npmjs.com/package/react-native-find-local-devices)
[![build](https://github.com/RichardRNStudio/react-native-find-local-devices/actions/workflows/build-app.yml/badge.svg?branch=main)](https://github.com/RichardRNStudio/react-native-find-local-devices/actions/workflows/build-app.yml)
[![platform](https://img.shields.io/badge/platform-Android-yellow)](https://github.com/RichardRNStudio/react-native-find-local-devices)
[![NPM total downloads](https://img.shields.io/npm/d18m/react-native-find-local-devices.svg?style=flat)](https://npmcharts.com/compare/react-native-find-local-devices?minimal=true)
[![react-native-find-local-devices](https://snyk.io/advisor/npm-package/react-native-find-local-devices/badge.svg)](https://snyk.io/advisor/npm-package/react-native-find-local-devices)
[![license](https://img.shields.io/badge/license-MIT-green)](https://github.com/RichardRNStudio/react-native-find-local-devices/blob/main/LICENSE)


It can be helpful when you try to get a list of your local devices over WiFi when the devices includes at least one websocket connection.






This package allows you detect all devices over your local network with websocket connection.


You've to add a timeout and an array of ports as parameters. The package will try to create a connection with those ports and return the ip addresses which have successful connection.


NOTICE: It doesn't work with IOS yet. Related ticket: IOS support ticket

Installation

```sh
yarn add react-native-find-local-devices
```

or

```sh
npm install react-native-find-local-devices --save
```

Running the example project

Android
```sh
yarn example android
```

Usage

```ts
import PortScanner from 'react-native-find-local-devices';

const scanner = new PortScanner({
timeout: 40,
ports: [8000],
onDeviceFound: (device) => {
console.log('Found device!', device);
},
onFinish: (devices) => {
console.log('Finished , devices:', devices);
},
onCheck: (device) => {
console.log('Checking IP: ', device.ipAddress);
},
onNoDevices: () => {
console.log('Finished scanning, no results have been found!');
},
onError: (error) => {
// Called when no service found
console.log('Error', error);
},
});

// You can start the discovering with the following function:
scanner.start();

// When the discovering is running, you can cancel that with the following function:
scanner.stop();

```

Advanced example with state management: https://github.com/RichardRNStudio/react-native-find-local-devices/blob/main/example/src/App.tsx

Properties of PortScanner class

| Name | Type | Default value | Description |
| ---------------------------- | -------- | ------------------------------------- | -------------------------------------------------------------------------------------------- |
| `ports` | number[] | none, required | Array of port numbers. |
| `timeout` | number | 40 | Timeout in millisecond to skip a specific device when it does not respond. |
| `onDeviceFound` | function | none | Callback function to handle moment when a new device has been found. |
| `onFinish` | function | none | Callback function to get all of devices which have been found during the progress. |
| `onCheck` | function | none | Callback function to responds the currently checked device's parameters. |
| `onNoDevices` | function | none | Callback function to notify, scanning has been finished, no results have been found. |
| `onError` | function | none | Callback function to responds any errors during the scanning. |

Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

License

MIT