hapore-ws
v0.0.6
Published
A simple connector to use WebSocket API from Hapore services
Readme
hapore-ws
hapore-ws es un cliente TypeScript/Node.js para interactuar con la API WebSocket de los servicios de Hapore.
Permite autenticación, consulta de eventos, gestión de canales y clientes, y envío de mensajes broadcast de manera sencilla.
Instalación
Instale desde npm:
npm install hapore-wsSi está desarrollando localmente:
npm install ../path/to/hapore-wsRequisitos de entorno
Antes de usar el cliente, asegúrese de definir las siguientes variables de entorno:
API_WEBSOCKET_DOMAIN=https://api.hapore.com
API_WEBSOCKET_BASE_PATH=/v1
[email protected]
API_WEBSOCKET_PASSWORD=miPassword
API_WEBSOCKET_KEY=clave_apiUso
Importar el cliente
import { HaporeWs } from 'hapore-ws';Autenticación y token
// Obtener token mediante login
const loginResp = await HaporeWs.login();
HaporeWs.setToken(loginResp.token);// O usar un token almacenado previamente
HaporeWs.setToken(tokenExistente);Consultar canales
const channels = await HaporeWs.getChannels();
console.log(channels); // ['channel1', 'channel2', ...]Consultar eventos de un canal
const events = await HaporeWs.getEvents({ channel: 'channel1' });
console.log(events);Consultar clientes
const allClients = await HaporeWs.getClients();
const clientsInChannel = await HaporeWs.getClientsByChannel({ channel: 'channel1' });Enviar mensajes broadcast
const broadcastResp = await HaporeWs.broadcast({
channel: 'channel1',
message: 'Hola a todos',
id: '123',
sender: 'admin'
});
console.log(broadcastResp);Métodos disponibles
| Método | Descripción | Retorno |
| --------------------------------------------- | ------------------------------------------------------- | ---------------------------- |
| login() | Realiza login con usuario/contraseña y obtiene un token | Promise<LoginResponse> |
| setToken(token: string) | Inyecta un token manualmente | void |
| getChannels() | Obtiene todos los canales disponibles | Promise<string[]> |
| getEvents({ channel }) | Obtiene los eventos de un canal | Promise<Event[]> |
| getClients() | Obtiene todos los clientes | Promise<string[]> |
| getClientsByChannel({ channel }) | Obtiene los clientes de un canal específico | Promise<string[]> |
| broadcast({ channel, message, id, sender }) | Envía un mensaje broadcast a un canal | Promise<BroadcastResponse> |
Notas
- El cliente añade automáticamente el token en los headers (Authorization: Bearer ) si está definido.
- Se recomienda almacenar el token en un cache externo si se planea reutilizar entre múltiples instancias o ejecuciones.
- Compatible con Node.js 18+ y TypeScript 5+.
