Question

ont lutté toute la journée à essayer de faire fonctionner ce simple exemple en utilisant socket.io. J'ai essayé d'abord sur Windows 7 avec Cygwin. Ont depuis également essayé OS X, avec le même résultat.

Lors de l'exécution du script, il montre ce ...

2 May 20:57:47 - socket.io ready - accepting connections

Mais visitant la page index.html un client pour afficher cette même connecté a.

index.html

<html>
<head>
<script type="text/javascript" src="socket.io.js"></script> 
<script type="text/javascript"> 
    var socket = new io.Socket('localhost',{'port':8090});

    socket.connect();

    socket.on('connect', function(){
        console.log('connected');
        socket.send('hi!'); 
    });

    socket.on('message', function(data){ 
        console.log('message recived: ' + data);
    });

    socket.on('disconnect', function(){
        console.log('disconected');
    });
</script> 
</head>
<body></body>
</html>

server.js

var http = require('http'), io = require('socket.io'),

server = http.createServer(function(req, res){ 
    res.writeHead(200, {'Content-Type': 'text/html'}); 
    res.end('<h1>Hello world</h1>'); 
});
server.listen(8090);

var socket = io.listen(server); 
socket.on('connection', function(client){ 
    console.log('client connected');

    client.on('message', function(){ 
        console.log('message arrive');
        client.send('some message');
    });

    client.on('disconnect', function(){
        console.log('connection closed');
    });
});

Toutes les idées sur ce que je pourrais faire mal? Aucun message de la console que ce soit sont affichés. Notamment, quand j'utiliser Firebug pour consulter la page index.html, pas de scripts sont intégrés, ce qui est odd..Not sûr de ce que pourrait être la cause que.

Était-ce utile?

La solution

Vous n'êtes pas au service des socket.io.js (ou le fichier flash).

Je recommande l'utilisation du CDN:

<script src="http://cdn.socket.io/stable/socket.io.js"></script>

ou en variante utiliser exprimer pour servir le fichier socket.io.js.

edit:

err regardant en réalité plus proche vous aussi ne pas servir jusqu'à index.html exprimer à nouveau pourrait fonctionner, mais pour l'exemple simple:

var fs = require('fs');
var index = fs.readFileSync('index.html');
//note the readFileSync is done only in the first tic
.
.
.
res.writeHead(200, {'Content-Type': 'text/html'}); 
res.end(index); 

Autres conseils

Vous n'êtes pas charger la bibliothèque socket.io correctement dans votre fichier index.html. Essayez ceci:

<script type="text/javascript" src="http://localhost:8090/socket.io/socket.io.js"></script> 

Utilisez ce du côté client comme le chemin!

<script type="text/javascript" src="/socket.io/socket.io.js"></script> 

oui, et commenter la ligne suivante:

// server.listen(8090);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top