# j-WebSocket

> Envíe y reciba mensajes JSON a través de una reconexión WebSocket.

Framework: jcomponent20
Product: jComponent 20 (jcomponent@20)
Language: es
Content-SHA256: 2886018330edaea0c021a65704cc65dc57bc6aea53799a2f69cad3e37b87bc10
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: components@910ed1a86f6e72b4f031d3ad0dc7844f9fc5cb8e
Review: usage-reviewed

El componente envía y recibe JSON mediante una conexión WebSocket con reconexión automática. Configura `url`, vincula una ruta del modelo para recibir mensajes y llama al método `send` para enviar objetos.


__Configuración__:

- `url {String}` URL para websocket, puede ser relativa o absoluta
- `reconnect {Number}` puede contener solo un número (milisegundos, predeterminado: `3000`)
- `encoder {Boolean}` realiza mensajes de codificación/decodificación a través de `URI` (predeterminado: `false`)
- __NUEVO__: Intervalo de estadísticas `statsinterval {Number}` en milisegundos (predeterminado: `1000`)
- __NUEVO__: `stats {String}` un enlace al método `function({ received: Number, sent: Number })` o ruta a una variable (medida en bytes)

__Métodos__:

- `component.send(obj)` - envía un objeto serializado JSON al servidor
- `component.close()` - cierra la conexión
- `component.connect()` - abre conexión
- `component.idletime(is)` - __NEW__ puede cancelar/reabrir la conexión

__Eventos__:

- `ON('message', function(data) {})` - datos recibidos
- `ON('online', function(isOnline) {})` - en línea/fuera de línea

## Uso

```html
<ui-component name="websocket" path="updates.latest"
  config="url:/updates/"></ui-component>
<script>
  function sendUpdate(value) {
    SETTER('websocket/send', { type: 'update', value: value });
  }
</script>
```

Fuente: [Total.js componentes](https://github.com/totaljs/components/tree/910ed1a86f6e72b4f031d3ad0dc7844f9fc5cb8e/j-WebSocket). Copyright Peter Širka y colaboradores. [Licencia MIT](/knowledge-licenses.json).
