Foros del Web » Programando para Internet » PHP »

class.jabber.php

Estas en el tema de class.jabber.php en el foro de PHP en Foros del Web. he instalado mi servidor jabber, y el cliente PSI, lo corro desd emi "localhost"... he registrado 2 usuarios--> "chales2" y "danger". me he bajado la ...
  #1 (permalink)  
Antiguo 10/03/2005, 11:43
Avatar de Danger_  
Fecha de Ingreso: diciembre-2004
Ubicación: Queretaro, México
Mensajes: 395
Antigüedad: 13 años
Puntos: 0
Pregunta class.jabber.php

he instalado mi servidor jabber, y el cliente PSI, lo corro desd emi "localhost"...
he registrado 2 usuarios--> "chales2" y "danger".

me he bajado la clase escrita en php "class.jabber.php" para poder trabajar con el protocolo jabber en web.

lo que he hecho es lo siguiente, para hacer mis pruebas:

1.- me conecto con el usuario chales2, en mi cliente PSI.
2.- tengo este codigo en php (index.php)
Código PHP:
<?php

require("class.jabber.php");

$JABBER = new Jabber;

$JABBER->server         "localhost";
$JABBER->port           5222;
$JABBER->username       "Danger";
$JABBER->password       "password";
$JABBER->resource       "ClassJabberPHP";

$JABBER->enable_logging TRUE;
$JABBER->log_filename   'logfile.txt';


$JABBER->Connect() or die("Couldn't connect!");
$JABBER->SendAuth() or die("Couldn't authenticate!");


$JABBER->SendPresence();

$JABBER->CruiseControl(100);

$JABBER->Disconnect();

function 
Handler_presence_available($message)
{
    global 
$JABBER;
    
$jid $JABBER->StripJID($JABBER->GetInfoFromPresenceFrom($message));
    print 
"<br>$jid is <b>En linea</b>.";
}

function 
Handler_presence_unavailable($message)
{
    global 
$JABBER;
    
$jid $JABBER->StripJID($JABBER->GetInfoFromPresenceFrom($message));
    print 
"<br>$jid is <b>Desconectado</b>.";
}

?>
3.- llamo al este archivo php (index.php), y como a los 5 segundos, pasa esto:



APARECE EN LINEA cuando sigue cargando la pagina, pero enseguida termina la carga, o talvez un poco antes, desaparece, (en el cliente PSI), sin embargo en la pagina PHP, nos dice que el usuario chale2, esta en linea, eso es correcto, ya que esta conectado desde el cliente PSI.

lo que quiero saber es porque desaparece el usuario Danger, siendo que si esta conectado

por favor alguien que me ayude...

PD: estaria bien que se creara un FAQ referente a esta clase, ya que es muy importante (sujerencia).

Saludos !
  #2 (permalink)  
Antiguo 11/03/2005, 07:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
PD: estaria bien que se creara un FAQ referente a esta clase, ya que es muy importante (sujerencia).
Las FAQ's son públicas .. cualquiera puede publicar la suya .. si tu crees conveniente hacerlo . .hazlo.

------

Sobre tus problemas .. No sé como usas dicha classe (sólo pones la classe pero no su uso concreto) .. tampoco sé que hacen exactamente los métodos expuestos .. pero, en principio no veo que contronen nada sobre el "buffer" de salida de PHP .. es decir ..cuando tu ejecutes tu script PHP .. tu classe hará la gestión para obtener el dato de tu usuario (si está en línea o no) .. pero ahí quedará dicho dato hasta que recagues la página para volver a ejecutar dicho script que leerá nuevamente ese usuario y su nuevo estado.

Esto es como funciona PHP en general .. PHP es un lenguaje al cual tu le "pides" un script/página .. este la ejecuta y entrega su "salida" al navegador (cliente) .. Si tu quieres "observar" en tu página ese estado de "en línea o no en línea" sin recargar la página para "forzar" a ver el estado de ese usuario por médio de jabber .. tendrás que usar otras técnicas como "Remote Scripting" .. o bien usar frames/iframes que recagues constantemente para ir "pidiendo" ese script al servidor y forzar su ejecución .. etc. Todo esto con el consiguiente desfase .. tanto mayor al que recargues tu página/iframe + el tiempo de trasnferencia hacia el cliente y el proceso de este.

Un saludo,
  #3 (permalink)  
Antiguo 12/03/2005, 16:24
Avatar de Danger_  
Fecha de Ingreso: diciembre-2004
Ubicación: Queretaro, México
Mensajes: 395
Antigüedad: 13 años
Puntos: 0
gracias por la respuesta cluster, habia pensado en eso de los frames, pero esta clase pesa mas de 40kb, y podria ser lenta su carga, agregando el tiempo que tardaria en procesar sichas funciones y demas...

se que php es un lenguage de scriptting, y que su funcion es tomar datos, he imprimirlos, lo se, pero es por eso que pedia alguna sujerencia para poder evitar todo esto de la recarga... :(

ahora bien, la verdad no lo he probado, pero estuve pensando en lo siguiente:

porque no hacer un archivo PHP, el cual lo llamare cada x segundos, mediante javascript...¿como?, pues mediante la funcion appendchild, crear una nueva tag (<script>file.php</script>), dentro de ese archivo PHP, haria una funcion mediante innerhtml, la cual crearia unas nuevas variables del estado de la coneccion... y mediante innerhtml, reemplazaria el valor de un objeto (por ejemplo un DIV que contenga el valor del status...)

asi en la pagina madre, cargaria la clase de jabber y jamas tendria que volver a cargarla con todo y la ventana. :)

es un metodo que se me ocurrio, y forzosamente debe de funcionar, pero si que suena laborioso... :P jejeje

que opinas cluster?, valdra la pena mover mar y tierra, por esta prueba.. ?
  #4 (permalink)  
Antiguo 15/03/2005, 07:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues .. si quieres probarlo adelante ..

Cita:
se que php es un lenguage de scriptting, y que su funcion es tomar datos, he imprimirlos, lo se, pero es por eso que pedia alguna sujerencia para poder evitar todo esto de la recarga... :(
más que todo eso .. PHP es un lenguaje del lado del servidor .. una cosa es lo que se ejecuta en el -servidor- y otra bien distinta lo que puede entregar al -cliente- para que haga este su parte.

Cita:
pero esta clase pesa mas de 40kb
Si, pero son 40kB y más que ocupará en memoria más los lapsus del socket que abre y espera respuesta de el .. Pero todo es en el "servidor". No en el cliente .. para el cliente el dato es mínimo .. no es el "peso" del script el que te debe preocupar sino su tiempo de proceso (que por el uso de sockets será mayor).

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 07:16.