ipc-client
v1.0.2
Published
A lightweight TypeScript WebSocket client for communicating with an Discord IPC server. Designed for Node.js environments such as Next.js API routes or backend services.
Downloads
4
Readme
Ipc-client
A lightweight TypeScript WebSocket client for communicating with an Discord IPC server. Designed for Node.js environments such as Next.js API routes or backend services.
🚀 Features
- 🔐 Supports authorization headers
- 🔄 Automatic reconnection on disconnect
- 🌐 Multicast support to dynamically discover server port
- ⚙️ Type-safe with TypeScript
- 💬 Easy integration with WebSocket-based Discord IPC servers
📦 Installation
npm install ipc-clientOr if you're developing locally:
npm link🛠 Usage Example
In a Node.js or Next.js API route:
import { IPCClient } from 'ipc-client';
export async function handler(req, res) {
const server = new IPCClient('localhost', null, 20000, 'your-secret-key');
try {
const response = await server.request('get-user', { userId: 123 });
res.status(200).json(response);
} catch (err) {
res.status(500).json({ error: 'IPC error', details: err.message });
}
}🧱 Constructor
new IPCClient(
host: string = "localhost",
port?: number | null,
multicastPort: number = 20000,
secretKey?: string
)| Parameter | Type | Description |
|----------------|-------------------|------------------------------------------|
| host | string | Hostname or IP of the IPC server |
| port | number \| null | Direct port (or null to use multicast) |
| multicastPort| number | Port to use for multicast discovery |
| secretKey | string | Secret key for IPC authorization |
📡 Methods
server.connect(): Promise<void>
Establishes a WebSocket connection to the IPC server.
server.request<T>(endpoint: string, data?: Record<string, any>): Promise<T>
Sends a request to the IPC server and returns the JSON response.
✅ Requirements
- Node.js 14 or higher
- IPC server supporting WebSocket communication
- Server must respond with a port when multicast is used
📃 License
MIT License © 2025
🙋♂️ Author
Developed by Mantouisyummy
