Evitar el reconectar al cargar la pagina usando fancywebsocket.js .

Iniciado por 70N1, 11 Diciembre 2014, 12:15 PM

0 Miembros y 1 Visitante están viendo este tema.

70N1

Hola a todos.
Bueno al grano... Me gustaria hacer una red social mediante sockets con fancywebsocket.js.

Aver si me podriais guiar un poco, la cosa es que al hacer un location.href hacia la misma pagina enviando varialbes por get, desconecta el socket y vuelve a conectar.
Como puedo evitar que desconecte?.


index.php

if(){
location.href=index.php?a="asdf"
}
70N1

exploiterstack

#1
Hola 70N1,

Mira así como mencionas es difícil a ciencia cierta que es lo que te esta pasando en esa pagina, así que pega mas código plis ;).

Pero puedo deducir que lo que estas haciendo en la pagina que crea el socket es establecer un socket en las variables que has especificado, de modo que esas variables antes de utilizarlas las abras inicializado por ejemplo a null y luego crear un socket bajo unas condiciones etc...

Lo que estas pretendiendo es enviar esas variables(socket) a la misma pagina, lo que estas haciendo es establecer de nuevo la variable null. Si es este el caso te aconsejo que la pagina que reciba las variables compruebe si el socket(o el propio socket) esta creado y si lo esta haga el comportamiento que desees. Y todo esto suponiendo que ese es el caso ya no entro si estas haciendo uso de sesiones(variables almacenadas en el atributo name del objeto window ya que las sesiones no existen en js) cookies bla, bla, bla... :laugh:


Como te digo es una suposición ya que con un código tan simplificado como el que pones es muy difícil adivinar que ocurre.

Un saludo!

70N1

INDEX.PHP



<?PHP
IF(ISSET($_GET['VARIABLE'])){
ECHO "ENTRO";
}ELSE{

}
?>
<script>
if(!Server){
alert("entro server"); // SIEMPRE ENTRA

        var Server;
           
        Server = new FancyWebSocket('ws://192.168.10.200:9300');
}

$(document).ready(function() {


Server.bind('close', function( data ) {
log( "Disconnected." );
});
                   ..........

               Server.connect();

document.getElementById('BUSCAR').onclick=(function(){

location.href="INDEX.php?VARIABLE=*";

           });

</script>




Cualquier ayuda es bienvenida
70N1

T. Collins

Si quieres hacer una red social con WebSockets no entiendo para qué cambiar de página, puedes cargar los datos con Ajax. Aquí plantean una solución con WebWorkers:
http://tavendo.com/blog/post/websocket-persistent-connections/

70N1

La cosa es que quiero hacer como facebook por ejemplo.
Que la direccion quede algo como http://localhost/maria.alonso.
Vamos... que cree una direccion fija para acceder a un usuario...
No se si me explico bien...
70N1

engel lex

en los links puedes usar un
Código (html4strict) [Seleccionar]
<a ... onclick="return:false">

y por listeners detectas el click
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

70N1

No entiendo bien...
Si pudieras poner un ejemplo te lo agradeceria.

Lo que quiero es hacer un location.hreff sin perder la conexion con el servidor.
enviar datos por get sin perder la conexion con el servidor.
70N1

MinusFour

Cita de: 70N1 en 11 Diciembre 2014, 23:34 PM
No entiendo bien...
Si pudieras poner un ejemplo te lo agradeceria.

Lo que quiero es hacer un location.hreff sin perder la conexion con el servidor.
enviar datos por get sin perder la conexion con el servidor.

Los websockets no persisten atraves de las paginas. Si haces un location.href, tu websocket se cierra.

70N1

#8
De esta forma se puede cargar una pagina dentro de otra y colocar la url la cual se accedera desde las url amigables.


Muchas gracias.


Código (html4strict) [Seleccionar]
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sin título</title>
<script type="text/javascript">

function Carga(url,id)
{
//Creamos un objeto dependiendo del navegador
var objeto;
if (window.XMLHttpRequest)
{
//Mozilla, Safari, etc
objeto = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
//Nuestro querido IE
try {
objeto = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try { //Version mas antigua
objeto = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!objeto)
{
alert("No ha sido posible crear un objeto de XMLHttpRequest");
}
//Cuando XMLHttpRequest cambie de estado, ejecutamos esta funcion
objeto.onreadystatechange=function()
{
cargarobjeto(objeto,id)
}
objeto.open('GET', url, true) // indicamos con el método open la url a cargar de manera asíncrona
objeto.send(null) // Enviamos los datos con el metodo send
}

function cargarobjeto(objeto, id)
{
if (objeto.readyState == 4) //si se ha cargado completamente
document.getElementById(id).innerHTML=objeto.responseText
else //en caso contrario, mostramos un gif simulando una precarga
document.getElementById(id).innerHTML='<img src="loader.gif" alt="cargando" />'
}
</script>

</head>

<body>
<div id="toni">hola</div>
<a href="mari.juana" onClick='Carga("http://192.168.10.200/1.php?variable=*","toni");'><input type="button" id="as"/></a>
</body>
</html>
70N1

engel lex

esa etiquetas GeSHi para publicar tu codigo, modifica los temas con condigo sin etiquetas
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.