Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/11/2013, 16:08
Avatar de EmpireFX
EmpireFX
 
Fecha de Ingreso: marzo-2008
Ubicación: in da house
Mensajes: 60
Antigüedad: 16 años, 2 meses
Puntos: 3
Pregunta Obtener valor actual. Jquery+websocket

Hola hace un rato estoy haciendo un juego simple de estrategia... estoy utilizando websocket para realizar la conexion entre el cliente y el servidor. En la parte del cliente no puedo obtener la respuesta actual del servidor.

Aca hice un resumen del cliente, pueden problarlo.

Código HTML:
Ver original
  1.     <head>
  2.         <script type="text/javascript" src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
  3.         <script type="text/javascript">
  4.             localStorage.lastresponse = 'old';
  5.  
  6.             function init(){
  7.                 var host = "ws://echo.websocket.org";
  8.  
  9.                 socket = new WebSocket(host);
  10.                 socket.onopen    = function(msg){log("Welcome - status "+this.readyState); };
  11.                 socket.onmessage = function(msg){
  12.                     localStorage.lastresponse = msg.data;
  13.                     log("Received: "+msg.data);
  14.                 };
  15.                 socket.onclose   = function(msg){log("Disconnected - status "+this.readyState); };
  16.             }
  17.  
  18.             function log(msg){var log = document.getElementById("log"); log.innerHTML+="<br>"+msg; log.scrollTop = log.scrollHeight;}
  19.  
  20.             function send_msg(msg){ log('Sent: '+msg); socket.send(msg); }
  21.  
  22.             $(document).ready(function(){
  23.                 $('.boton').on('click', function () {
  24.                     $('.map').unbind().on('click', function (e) {
  25.                         send_msg('Rock it with HTML5 WebSocket');
  26.                         alert(localStorage.lastresponse);
  27.                         //console.log(localStorage.lastresponse);
  28.                         //delete localStorage.lastresponse;
  29.  
  30.                         e.stopPropagation();
  31.                     });
  32.                 });
  33.             });
  34.         </script>
  35.         <style type="text/css">
  36.             .map{width: 200px;height: 200px;background-color: green;}
  37.             #log{width: 400px; height: 120px;overflow-y: scroll;}
  38.         </style>
  39.     </head>
  40.     <body onload="init()">
  41.         <div class="map"></div>
  42.         <div id="log"></div>
  43.         <br>
  44.         <button class="boton">Crear unidad</button>
  45.     </body>
  46. </html>

Creas una unidad y seleccionas que parte del mapa(cuadro verde). El problema es que muestro por pantalla el valor anterior de localStorage.lastresponse, no el actual(siendo la respuesta actual del servidor que deberia ser 'Rock it with HTML5 WebSocket').

Estube probando varias cosas pero sin resultado, espero que alguien me guie y mejor si explica el porque, que no logro entenderlo del todo.

Saludos

Última edición por EmpireFX; 17/11/2013 a las 16:12 Razón: error