
npm install @paapi/client*Paapi is a wrapper around Socket.io that makes pairing two devices and establishing a connection
very simple*
Install the package in your project with the package manager of your choice:
```
npm i @paapi/client
``
yarn add @paapi/client
``
pnpm add @paapi/client
Then use it in your modules or with a bundler:
`javascript`
import paapi from '@paapi/client'
> Paapi will be working out-of-the-box because it uses by default the demo server as
> backend. It is strongly advised to run your own server for a more reliable experience.
You will then need to share an identifier between the two devices you want to pair. This identifier can be shared the
way you want. The most common method is a QR code (see the demo)
The pairing is done like that:
`javascript`
const link = await paapi().pair('yourId')
If you need the server to generate an ID for you, call the pair method with no parameters.
`javascript`
const link = await paapi().pair('yourId')
link.id // this is the ID the other device will need to know to pair
The link is considered paired when both devices have established a connection with the server. You can be notified for
the pairing with the onPair method.
`javascriptThe link is now paired with id ${link.id}
link.onPair(() => {
console.log()`
})
Under the hood, a Link is using Socket.io to transfer data between the server and the clients.
To send data, use the emit() method of the link.
The first parameter is the event name, and the second the data. This can be any javascript data structure.
`javascript`
link.emit('myEvent', {
some: 'data'
})
To receive data, you have to bind a listener on the event you want to listen to. This is done with the on() method.
`javascript`
link.on('myEvent', data => {
console.log(data) // => { some: 'data' }
})
function is used to create a new link.`javascript
const link = paapi('https://my-server-url/')
`🔗 Complete Link API
The Link object is exposing each method of the Socket.io
Socket Object.
See the documentation there.$3
The Link instance has some additional methods and attributes.
#### Attributes
| Method | Returns | Description |
|----------|-----------------------------------------------------------------|--------------------------------------------------|
|
id | string | The room id the link is paired with |
| paired | boolean (readonly) | true if the link is paired. false otherwise |
| socket | Socket | The Socket.io's Socket instance used by the link |
#### Methods
| Method | Returns | Description |
|------------------------------|--------------------|----------------------------------------------------------------------------------------------------------|
|
pair([id: string]) | Promise\ | Pairs the link with the provided room id.
If id is not provided, the server will autogenerate one. |
| onPair(listener: Function) | void | Registers a listener for when the link will be paired. |
| waitFor(event: string)` | Promise\> ⏳ Coming soon !