es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

[Websocket][Chat] – ¿Cómo puedo determinar si un mensaje fue enviado “por el cliente” o “por otro usuario”?

El siguiente método (ver video en este enlace) se describe en forma de PHP si en una aplicación de chat de usuario el mensaje se envía “desde el cliente” o “desde cualquier otro usuario”.

public function onMessage(ConnectionInterface $from, $msg) {
    $numRecv = count($this->clients) - 1;
    echo sprintf('Connection %d sending message "%s" to %d other connection%s' . "\n"
        , $from->resourceId, $msg, $numRecv, $numRecv == 1 ? '' : 's');
});)

$data=json_decode($msg,true);

foreach($this->clients as $client){
    if ($from == $client){
        $data['from']='Yo';
    }else{
        $data['from']=get_current_user_id();    
    }

    $client->send(json_encode($data));
}

Deseo detectar el procedimiento anterior sin llamar a esta función en PHP. ¿Es posible hacerlo a través de JavaScript dentro del código de websockets, por ejemplo, en un archivo package.json?

Quiero detectar si el mensaje fue enviado o recibido desde el socket, porque tengo que organizarlos a la izquierda o a la derecha, según quién haya enviado el mensaje – el usuario del cliente u otro.

Gracias de antemano por su apoyo.

J.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    No, no es posible detectar el procedimiento anterior sin llamar a la función onMessage en PHP. La función onMessage es responsable de manejar los mensajes entrantes y decidir cómo responder a ellos. El código que proporcionaste es específico de PHP y no se puede traducir directamente a JavaScript ni incluir en un archivo package.json. Para organizar los mensajes correctamente, deberás modificar el código de PHP para incluir información sobre quién envió el mensaje y utilizar esa información para formatear el mensaje adecuadamente.

Comments are closed.