roke22/PHP-SSH2-Web-Client

How detect end of session

Closed this issue · 2 comments

Hola.
Acabo de instalar todo y funciona de maravilla.
Hay alguna manera de poder detectar el final de la session SSH y poder generar un evento para volver a cargar la pagina principal "index.html" por ejemplo?
Gracias.

Hi.
I just installed everything and it works great.
Is there any way to detect the end of the SSH session and generate an event to reload the main page "index.html" for example?
Thank's a lot.

Hola,
Ahora mismo no sabría decirte como hacerlo, lo único que se me ocurre es ver si se recibe mensaje u ocurre algún evento cuando esto pasa.
Para ello yo registraría todo lo que ocurra en los metodos
`
public function onMessage(ConnectionInterface $from, $msg)

public function onError(ConnectionInterface $conn, \Exception $e)
`
De esta forma verías si al cerrarse la conexión se puede detectar, si es así puedes insertar código en el método donde ocurra el cierre y tratarlo de la forma que quieras.

Espero sea de ayuda, si lo haces o lo detectas por favor escribe para saber como lo has hecho.

Gracias!!

Hola.
Finalmente, he podido determinar cuando manualmente se cierra la conexión con el comando "exit".

Como bien has dicho, usando el Listener del wSocket, se puede interceptar todas las comunicaciones del terminal, con lo que es bastante sencillo leer el mensaje de "logout" que se genera al hacer un "exit" para finalizar la sessión SSH.

wSocket.addEventListener('message', function(event){
    var str = event.data;
    console.log("Message from Terminal: ", str);

    if (str.includes("logout")){
       console.log("Connection ended");
       window.location.reload();
    }
});

Saludos.