Foros del Web » Programando para Internet » Node.js »

FF incrementa la variable de a uno (como debe ser), pero CHROME de a 2

Estas en el tema de FF incrementa la variable de a uno (como debe ser), pero CHROME de a 2 en el foro de Node.js en Foros del Web. Hola. Instale node v0.10.msi escribí estas lineas: Código PHP:      var  p = 5 ;     var  http  = require( 'http' );     var  url  = require( 'url' ); ...
  #1 (permalink)  
Antiguo 18/05/2013, 11:21
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
FF incrementa la variable de a uno (como debe ser), pero CHROME de a 2

Hola.
  1. Instale node v0.10.msi
  2. escribí estas lineas:
    Código PHP:
        var p=5;
        var 
    http = require('http');
        var 
    url = require('url');
        var 
    n=0;
        
    http.createServer(function(request,response){
            
    n++;
            
    console.log('Aki va la petición #'+n);
            
    response.writeHead(200,{'Content-Type''text/plain'});
            
    response.write('Esta es la apertura #'+n+'<br />');
            
    response.end('-Hola Mundo en JS up!\n');
            }).
    listen(p);
        
    console.log('Servidor ejecutándose en http://127.0.0.1:'+p); 
y...

Valla cosa rara!, CHROME incrementa de a dos unidades, pero FF y los demas de a una.
¿por que?

La otra pregunta es que tengo los dos browsers abiertos, y lo que sucede en uno no se actualiza EN EL OTRO.

que me hace falta hacer? (ademas de leer muchisisisismo)
  #2 (permalink)  
Antiguo 18/05/2013, 15:50
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 15 años, 9 meses
Puntos: 103
Respuesta: FF incrementa la variable de a uno (como debe ser), pero CHROME de a 2

es que Chrome pide Siempre el archivo favicon.ico cuando pide un archivo html.
fijate en la consola de chrome, pestaña Network
__________________
Hangouts de JavaScript todos los jueves 20hs GMT, Unite !
https://plus.google.com/u/0/108504944676960830886
  #3 (permalink)  
Antiguo 18/05/2013, 17:38
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: FF incrementa la variable de a uno (como debe ser), pero CHROME de a 2

Cita:
Iniciado por chwc Ver Mensaje
es que Chrome pide Siempre el archivo favicon.ico
Gracias por aclararme!!

Bueno, ahora me sale este MSJ: Welcome to socket.io sin yo tener idéa de dónde esté escrito.

Lo que hago es abrir vía HTTP el puerto 6969

Y mi server.js es este:
Código PHP:
var server = require("socket.io").listen(6969);
 
server.sockets.on('connection', function(message){
    var 
v=0;
    
v++;
    
message.on('newMessage'+v, function(data){
        
server.sockets.emit('sendEvent'+vdata+v);
    });
}); 
Quiero sacar el valor de v en el browser.

Algúna idéa de cóm opuedo hacerlo?

Gracias de nuevo.
  #4 (permalink)  
Antiguo 18/05/2013, 20:07
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 15 años, 9 meses
Puntos: 103
Respuesta: FF incrementa la variable de a uno (como debe ser), pero CHROME de a 2

mira, te haces un re quilombo, estas utilizando socket.io para tener un servidor de websockets, no tenes que abrir la url. usá un ejemplo como en http://socket.io/.

te dejo un ejemplo para que hagas eso del v++

Cliente :
Código HTML:
Ver original
  1. <script src="http://localhost:6969/socket.io/socket.io.js"></script>
  2.   var socket = io.connect('http://localhost:6969'); //conectar a localhost, puerto 6969
  3.   socket.on('V', function (data) {
  4.     alert(data); // mostrar lo recibido
  5.   });

Servidor :
Código Javascript:
Ver original
  1. var server = require("socket.io").listen(6969);
  2.   var v=0; // inicializamos la variable como global
  3. server.sockets.on('connection', function(message){
  4.     v++;
  5.     socket.emit('V',v); // enviamos el valor de v, con el identificador de mensaje de 'V'
  6. });

igual te recomiendo que hagas un curso de javascript, en codeacademy hay muy buenos cursos ( son gratuitos pero en ingles ), o sino empezá a probar con la consola de tu navegador ( recomiendo la de Chrome )
__________________
Hangouts de JavaScript todos los jueves 20hs GMT, Unite !
https://plus.google.com/u/0/108504944676960830886
  #5 (permalink)  
Antiguo 18/05/2013, 20:43
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: FF incrementa la variable de a uno (como debe ser), pero CHROME de a 2

Cita:
Iniciado por chwc Ver Mensaje
te dejo un ejemplo
Gracias.

Copié y pegué tál cuál.

La página HTML continua 100% en blanco, y no hay errores JS.

La consola retorna esto:
Código:
E:\HTTP\NJS\pruebas>nodemon s2.js
18 May 21:44:16 - [nodemon] v0.7.8
18 May 21:44:16 - [nodemon] to restart at any time, enter `rs`
18 May 21:44:16 - [nodemon] watching: E:\HTTP\NJS\pruebas
18 May 21:44:16 - [nodemon] starting `node s2.js`
   info  - socket.io started
   debug - served static content /socket.io.js
   debug - client authorized
   info  - handshake authorized Vk3H-8Md-WBzKerrrFpN
   debug - setting request GET /socket.io/1/websocket/Vk3H-8Md-WBzKerrrFpN
   debug - set heartbeat interval for client Vk3H-8Md-WBzKerrrFpN
   debug - client authorized for
   debug - websocket writing 1::

E:\HTTP\NJS\pruebas\s2.js:5
        socket.emit('V',v); // enviamos el valor de v, con el identificador de
        ^
ReferenceError: socket is not defined
    at SocketNamespace.<anonymous> (E:\HTTP\NJS\pruebas\s2.js:5:9)
    at SocketNamespace.EventEmitter.emit [as $emit] (events.js:117:20)
    at connect (E:\HTTP\NJS\node_modules\socket.io\lib\namespace.js:292:10)
    at E:\HTTP\NJS\node_modules\socket.io\lib\namespace.js:308:13
    at SocketNamespace.authorize (E:\HTTP\NJS\node_modules\socket.io\lib\namespa
ce.js:252:5)
    at SocketNamespace.handlePacket (E:\HTTP\NJS\node_modules\socket.io\lib\name
space.js:302:14)
    at Manager.handleClient (E:\HTTP\NJS\node_modules\socket.io\lib\manager.js:6
98:32)
    at Manager.handleUpgrade (E:\HTTP\NJS\node_modules\socket.io\lib\manager.js:
618:8)
    at Server.<anonymous> (E:\HTTP\NJS\node_modules\socket.io\lib\manager.js:123
:10)
    at Server.EventEmitter.emit (events.js:106:17)
18 May 21:44:23 - [nodemon] app crashed - waiting for file changes before starti
ng...
Que será?
  #6 (permalink)  
Antiguo 18/05/2013, 21:13
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 15 años, 9 meses
Puntos: 103
Respuesta: FF incrementa la variable de a uno (como debe ser), pero CHROME de a 2

Código Javascript:
Ver original
  1. var server = require("socket.io").listen(6969);
  2.   var v=0; // inicializamos la variable como global
  3. server.sockets.on('connection', function(socket){
  4.     v++;
  5.     socket.emit('V',v); // enviamos el valor de v, con el identificador de mensaje de 'V'
  6. });
__________________
Hangouts de JavaScript todos los jueves 20hs GMT, Unite !
https://plus.google.com/u/0/108504944676960830886
  #7 (permalink)  
Antiguo 18/05/2013, 21:55
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: FF incrementa la variable de a uno (como debe ser), pero CHROME de a 2

Cita:
Iniciado por chwc Ver Mensaje
Código Javascript:
Ver original
  1. var server = require("socket.io").listen(6969);
  2.   var v=0; // inicializamos la variable como global
  3. server.sockets.on('connection', function(socket){
  4.     v++;
  5.     socket.emit('V',v); // enviamos el valor de v, con el identificador de mensaje de 'V'
  6. });
Gracias ChWc.

Ahora sí emite un ALERT con el valor de "$v".

Finalmente podrias indicarme cómo imprimir la salida a pagina.html ?

Creo que debe ser una salida similar a:

document.GetElementById('div_de_salida').innerHTML =mensaje_del_server

Pero quizas estoy equivocado...

Puedes darme esa orientación plis?
  #8 (permalink)  
Antiguo 18/05/2013, 22:02
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: FF incrementa la variable de a uno (como debe ser), pero CHROME de a 2

Bueno, esta sucediendo justo lo SEGUNDO que pregunte: sí actualiza "$v", pero solo en UN NAVEGADOR, no en todos.

Yo hice este ínfimo cambio:
Código:
    <script src="http://localhost:6969/socket.io/socket.io.js"></script>
<script>
	var socket = io.connect('http://localhost:6969'); //conectar a localhost, puerto 6969
	socket.on('V', function(data){
		document.getElementById('respuestas').innerHTML=
		document.getElementById('respuestas').innerHTML+data;
    });
    </script>
<div id="respuestas"></div>
Pero solo actualiza en la ventana que hace el F5.

¿cómo hago que actualice en TODAS?

Gracias ChWc
  #9 (permalink)  
Antiguo 18/05/2013, 23:58
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 15 años, 9 meses
Puntos: 103
Respuesta: FF incrementa la variable de a uno (como debe ser), pero CHROME de a 2

Ah ! entendi bien lo que queres hacer

Código Javascript:
Ver original
  1. var server = require("socket.io").listen(6969);
  2.   var v=0; // inicializamos la variable como global
  3. server.sockets.on('connection', function(socket){
  4.     v++;
  5.     server.sockets.emit('V',v); // enviamos el valor de v, con el identificador de mensaje de 'V'
  6. });

Código HTML:
Ver original
  1. <script src="http://localhost:6969/socket.io/socket.io.js"></script>
  2.     var socket = io.connect('http://localhost:6969'); //conectar a localhost, puerto 6969
  3.     socket.on('V', function(data){
  4.         document.getElementById('respuestas').innerHTML=data;
  5.     });
  6.     </script>
  7. <div id="respuestas"></div>

Perdona que no explique mucho, es que a esta hora estoy medio dormido
__________________
Hangouts de JavaScript todos los jueves 20hs GMT, Unite !
https://plus.google.com/u/0/108504944676960830886
  #10 (permalink)  
Antiguo 19/05/2013, 05:03
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: FF incrementa la variable de a uno (como debe ser), pero CHROME de a 2

Cita:
Iniciado por chwc Ver Mensaje
...a esta hora estoy medio dormido
Yo a cualquier hora te agradézo esta importantísima ayuda.

Considero que podrias empaquetar los 2 scripts y compartirlos a la comunidad, estan funcionando PERFECTAMENTE y a diferencia de los CHATS y otros ejemplos que hay en NET, son PERFECTOS para verificar el funcionamiento de las dos aplicaciónes más COMÚNES para programación web orientada a EVENTOS.

Que sucede con esas otras DOCENAS ejemplos y manuales?

Pues que te meten 100 líneas de CSS, HTML, DIVS... en el HTML.
Y referente al server.js lo saturan de condicionales, eventos, etc...

Para alguién que lleva minutos en el mundo NodeJs el ejemplo que haz desarrollado ayuda muchisimo, dado que ejemplifica 100% cuál es la mágia de NodeJs.

Desde aquí, cualquiera que lleve unos meses haciendo HTML o años haciendo web, aprecia MUY fácilmete de que vá esta tecnología.

De nuevo ChWc:

El tuyo es el mejor ejemplo (por simple) que he encontrado.

Si tienes tiempo, te anímo a que lo documentes dado lo CORTO del mismo.
(no LINEA por LINEA sino palabra por palabra (reservadas/funcionales)).

Excelente!!!


Etiquetas: chrome, variable
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:29.