Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

...

Lo que registrara un SocketEndpoint en el servidor. Mirar WS spec issue 211.


Utilización en el Cliente

...

Bloque de código
<fw:socket channel="someChannel" onmessage="function(message) { console.log(message); }" />

La función El listener JavaScript onmessage, se invocará con tres argumentos:

  • menssage: el mensaje push como objeto JSON.
  • channel: el nombre del canal, útil en caso de que pretenda tener un oyente global o desee controlar manualmente el cierre.
  • event: la instancia sin procesar de MessageEvent, útil en caso de que desee inspeccionarla.

...

Es importante no mezclar las dos formas de controlar la conexión push. O se usa una expresión EL en el atributo connected, o se especifica connected="false" y la API Javascript  FundeWeb.Push para controlar la apertura/cierre de la conexión push. Mezclar ambas configuraciones puede provocar comportamientos impredecibles porque el estado de la vista Faces en el servidor no puede ser notificada de la apertura o cierre manual desde el cliente.


Eventos

El listener opcional de Javascript onopen, se usa cuando se abre el websocket en el cliente. Se lanza en el primer intento de conexión, independientemente de que la conexión se pueda realizar o no. No se invoca, en las auto-reconexiones que se hagan posteriormente. Acepta como único parámetro channel, el nombre del canal.

Bloque de código
<fw:socket channel="foo" scope="view" ... connected="false" onopen="socketOpenListener" />
Bloque de código
function socketOpenListener(channel) {
    // ...
}


El listener opcional de Javascript onerror, se usa para detectar los errores de conexión antes de un nuevo reintento de conexión. Se invocará cuando el socket web pueda realizar un intento de reconexión automática en una conexión interrumpida después de la primera conexión correcta. No se invocará cuando falle el primer intento de conexión, o el servidor haya devuelto el código de motivo de cierre 1000 (cierre normal) o 1008 (política violada), o se haya excedido el número máximo de intentos de reconexión. En su lugar, se invocará listener Javascript onclose.

Bloque de código
<fw:socket channel="foo" scope="view" ... connected="false" onerror="socketErrorListener" />
Bloque de código
function socketErrorListener(code, channel, event) {
    if (code == 1001) {
        // Server has returned an unexpected response code. E.g. 503, because it's shutting down.
    } else if (code == 1006) {
        // Server is not reachable anymore. I.e. it's not anymore listening on TCP/IP requests.
    } else {
        // Any other reason which is usually not -1, 1000 or 1008, as the onclose will be invoked instead.
    }

    // In any case, the web socket will attempt to reconnect. This function will be invoked again.
    // Once the web socket gives up reconnecting, the onclose will finally be invoked.
}


El listener de Javascript onerror acepta tres parámetros:

  • code: el código que indica el tipo de cierre. Mirar RFC 6455 sección 7.4.1 y CloseReason.CloseCodes.
  • channel: el nombre del canal, útil si se intenta tener un listener global.
  • event: la instancia de CloseEvent, útil en caso de revisión de querer más información sobre el error.


El listener opcional de Javascript onclose, se puede usar para detectar el cierro normal o no del websocket.