holesail-client
v2.3.0
Published
A client for connecting to Holesail P2P reverse proxy.
Maintainers
Readme
Holesail Client
Join our Discord Support Server
The Holesail Client is a Node.js and Bare module for connecting to Holesail Servers with secure and efficient data relaying.
Installation
Install the Holesail Client module via npm:
npm install holesail-clientUsage
Importing the Module
To use the module, require it in your project:
const HolesailClient = require('holesail-client')Creating an Instance
Create a new instance of the HolesailClient class by passing your peer key:
const client = new HolesailClient({ key: '<key>' })Secure Mode
To avoid leaking access capability on the DHT, pass the optional "secure" flag. Ensure the server is also configured for secure mode:
const client = new HolesailClient({ key: '<key>', secure: true })Connecting to the Server
Use the connect method to establish a connection to the Holesail Server, opts are auto detected but you can specify custom opts:
client.connect({ port: 5000, host: '127.0.0.1', udp: true }, () => {
console.log('Connected to the server')
})Destroying the Connection
To terminate the connection and clean up resources, call the destroy method:
client.destroy()Resuming and Pausing
You can also resume or pause the connection:
await client.resume()
await client.pause()Example
Here is a complete example demonstrating how to use the Holesail Client:
const HolesailClient = require('holesail-client')
// Replace with your peer key
const client = new HolesailClient({ key: 'fwkkgncpatjpt5j6n53beqjoz7wtxtbse8d7u9z1y17esbz5dhpo' })
client.connect({ port: 8000, host: '127.0.0.1', udp: true }, () => {
console.log('Connected to the server')
})
setTimeout(() => {
console.log('Closing connection...')
client.destroy()
}, 5000)API Reference
new HolesailClient(opts)
Creates a new instance of the HolesailClient class.
Parameters:
- opts (object): Options object:
- key (string): A hexadecimal string representing your peer key.
- secure (boolean, optional): Pass true to enable private connections. The server must also be running in secure mode. See private vs public mode
connect(options, callback)
Establishes a connection to a Holesail Server.
Parameters:
options(object): Connection options:port(number): Port number of the server.address(string): IP address of the server (default: "127.0.0.1").udp(boolean, optional): Set totruefor UDP connections.
callback(function): A function called once the connection is successfully established.
destroy()
Terminates the connection and releases associated resources.
resume()
Resumes the connection if it was paused.
pause()
Pauses the connection.
get(opts)
Retrieves a mutable record stored on the DHT.
client.info
Provides information about the current state of the client, including:
- state: Current state of the client (e.g., 'listening', 'paused', 'destroyed').
- secure: Indicates whether the connection is private.
- port: Current port used for the connection.
- host: Current host used for the connection.
- protocol: Current protocol being used ('udp' or 'tcp').
- key: Connection key from the server.
- publicKey: The public key announced on DHT for discovery.
License
Holesail Client is released under the GPL-v3 License.
For more details, see the LICENSE file.
Community and Support
Join our Discord Support Server for help, discussions, and updates.
