J'ai installé NodeJS sur ma machine Ubuntu et ont créé le script suivant ....NodeJS et HTML5 Websockets ne travaillent pas ensemble
var host = 'localhost'
var port = '8080'
var net = require('net');
net.createServer(function (socket) {
socket.write("Echo server\r\n");
socket.on("data", function (data) {
socket.write(data);
});
}).listen(port, host);
console.log('Server running at http://' + host + ':' + port + '/');
Je lance alors ...
node example.js
.. .in un terminal, ce qui me donne ce qui suit ...
Server running at http://localhost:8080/
J'ai créé une simple page HTML avec le code suivant ...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js'></script>
<script>
$(document).ready(function(){
if(!("WebSocket" in window)) {
alert("Sorry, the build of your browser does not support WebSockets.");
return;
}
ws = new WebSocket("ws://localhost:8080/");
ws.onclose = function() {
alert("socket closed");
};
ws.onopen = function() {
alert("socked opened");
};
ws.onmessage = function() {
alert("message received");
};
$('button').click(function() {
ws.send("testing");
});
setInterval(function() {
$('p.readyState').text(ws.readyState);
}, 1000);
});
</script>
</head>
<body>
<button type="button">Click Me!</button>
<p class="readyState"></p>
</body>
</html>
Mais quand je passe en revue à la page je reçois pas de commentaires et le readyState est toujours 0. Si j'arrête le serveur alors que la page est toujours ouverte, je reçois la prise d'alerte fermée.
J'ai testé ce script dans Chrome (8.0.552.215), Firefox 4 (Beta 7) et Opera 11 (Bêta).
Quelqu'un a-t-il des suggestions?
Merci!