open-index/open-npm huggingface dataset:
npm package: @octanasoftware/realtime-sdk
Description: Esta librería permite conectarse a push.octana.mx
Latest version: 3.0.0


Esta librería permite conectarse a push.octana.mx

### Instalación
```sh 
    npm i @octanasoftware.com/realtime-sdk
```

### Creación y configuración
```ts
    const realtime = new Realtime({
        url: "wss://push.octana.mx/connect",
        token: "<EL_TOKEN_PREVIAMENTE_GENERADO",
        getToken: async ()=>{
            // esta función debe extraer el nuevo token 
        },
    });
    realtime.on("connecting", (ctx) => console.log(ctx));
    realtime.on("connected", (ctx) => console.log(ctx));
    realtime.on("disconnected", (ctx) => console.log(ctx));

    realtime.connect();
    
```

### como suscribirse a un canal
```ts
    //donde channel deberá ser el canal al que tiene acceso el token proporcional por el backend
    const chan=realtime.newSubscription(channel);
    chan.on("publication", function (info:any) {
        const {data}=info;
        console.log('R rt: ' , data)
    }).subscribe();
```

### crear el token 
Esta función debe ser generada desde el backend y debe ser proporcionado al frontend previo a crear el objeto Realtime
```ts
    function getTokenCentrifugo(){
        const SECRET_OCTANA ="TOKEN_PROPIO_DE_push.octana.mx";        
        return JWT.sign(
            {
                sub: "10x", // id único para el usuario
                "channels": ["channel"], // caales a los que tendría acceso el suscripto/frontend
            },
            SECRET_OCTANA,
            {
                algorithm: "HS256",
                expiresIn: "1h" // duración del token
            }
        );   
    }
```

### actualizar el token
El backend debe proveer un endpoint que devuelva el nuevo token cuando el primero haya vencido
Este endpoint debe ser de tipo GET y debe retorna un texto con el token