En este caso es un problema que no puedo identificarlo, entenderlo del todo bien, es en la parte del cliente. Aca prepare algo mas simple de la parte del cliente que no encuentro solucion.
Código
<html> <head> <script type="text/javascript"> localStorage.lastresponse = 'old'; function init(){ var host = "ws://echo.websocket.org"; socket = new WebSocket(host); socket.onopen = function(msg){log("Welcome - status "+this.readyState); }; socket.onmessage = function(msg){ localStorage.lastresponse = msg.data; log("Received: "+msg.data); }; socket.onclose = function(msg){log("Disconnected - status "+this.readyState); }; } function log(msg){var log = document.getElementById("log"); log.innerHTML+="<br>"+msg; log.scrollTop = log.scrollHeight;} function send_msg(msg){ log('Sent: '+msg); socket.send(msg); } $(document).ready(function(){ $('.boton').on('click', function () { $('.map').unbind().on('click', function (e) { send_msg('Rock it with HTML5 WebSocket'); alert(localStorage.lastresponse); //console.log(localStorage.lastresponse); //delete localStorage.lastresponse; e.stopPropagation(); }); }); }); </script> <style type="text/css"> .map{width: 200px;height: 200px;background-color: green;} #log{width: 400px; height: 120px;overflow-y: scroll;} </style> </head> <body onload="init()"> <br> </body> </html>
El funcionamiento es simple, abris la web, se conecta al servidor, creas una unidad, selecionas que parte del mapa y crea la unida... el problema es que en el alert no me imprime 'Rock it with HTML5 WebSocket' sino el valor anterior que tenia, ¿como puedo obtener la ultima respuesta del servidor?