NodeJS + socket.io: Client/Serveur simple exemple ne fonctionne pas
Je suis en utilisant NodeJS v0.4.8 et la Version la plus récente de la prise.io de
npm install socket.io
sur Ubuntu:
Linux mars 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011 i686 i686 i386 GNU/Linux
Le code suivant, malheureusement, ne produit pas de sortie, que vous soyez sur le client, ni sur le côté serveur.
Quelqu'un a une idée?
CÔTÉ SERVEUR
var http = require('http'),
io = require('socket.io'),
fs = require('fs'),
sys = require('sys');
respcont = fs.readFileSync('testclient.js');
server = http.createServer(function(req, res){
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(respcont);
});
server.listen(8082);
var socket = io.listen(server);
socket.on('connection', function(client){
sys.puts("New client is here!");
client.send("hello world");
client.on('message', function(msg) { sys.puts("client has sent:"+msg); }) ;
client.on('disconnect', function() { sys.puts("Client has disconnected"); }) ;
});
CÔTÉ CLIENT
<html>
<body>
<script type="text/javascript" src="http://localhost:8082/socket.io/socket.io.js"></script>
<script>
var socket = new io.Socket(null,{port:8082,rememberTransport:true,timeout:1500});
socket.connect();
socket.on('connect', function() {
console.log('connected to server');
socket.send('Hi Server...');
});
socket.on('message', function() {
console.log('received a message!');
});
socket.on('disconnect', function() {
console.log('disconnected from server');
});
</script>
</body>
</html>
La sortie de NodeJS (PAS le sys.puts("...") appelle) est:
info - prise.io commencé debug -
servi statique /socket.io.js debug -
client autorisé info - poignée de main
autorisé info - handshaken
b61a5c2751c1c8c8493db4b79d19e779
OriginalL'auteur helix | 2011-06-20
Vous devez vous connecter pour publier un commentaire.
J'ai aussi(comme Derrish) comme utiliser express cadre de simplifier mon travail(GÉNIAL 🙂). Vous pouvez le télécharger et l'extrait de cet échantillon de http://dl.dropbox.com/u/314941/socketio.zip. Je crois que vous n'avez même pas à installer ces modules parce que j'ai regroupés localement(il suffit d'exécuter) grâce à des mnp :).
Comment faire pour installer:
Le code:
app.js:
public/index.html:
Liste de mes modules:
Modules installés(PAS nécessaire):
Navigateur affiche:
socket.io
sur démarrer, mais probablement que vous ne pouvez pas le voir car il sera remplacé parconnected
.connected
lorsque l'utilisateur se connecte à la prise.io.Waited two seconds!
"localhost" fonctionne également...
app.js" commande démarre mon socket.io server. mais lorsque je ferme le terminal, l'arrêt de serveur et les clients sont à la déconnexion. Alors, comment puis-je rendre le serveur en permanence et ne jamais s'arrêter.?
OriginalL'auteur Alfred
Express 3.0 + Socket.io exemple de travail
serveur ( app.js )
client ( index.html )
vous pouvez fourche le code en utilisant le lien ci-dessous
https://github.com/sreekumar-kr/Expree3.0---Socket.IO
Je vous remercie pour l'amélioration de votre réponse =) Vous pouvez ajouter votre lien de retour, juste aussi longtemps que ce n'est pas le chose dans votre réponse (et le lien est pertinent, qu'il semble être).
ok merci =)
OriginalL'auteur sreekumar
J'ai pris ton exemple et abandonné dans un nœud de l'application à l'aide de l'express. Votre code HTML est placé dans un fichier HTML statique de droit public. Votre exemple a bien fonctionné. Le code est indiqué ci-dessous. Je voulais m'assurer que la prise.io fichier de script et le fichier HTML étaient servis correctement.
Je crois que tous les fichiers dans la statique du dossier doivent être abordées à l'aide de leur chemin d'accès complet dans l'URL. localhost:9000/index.html
OK, l'exemple est le travail, mais je n'ai pas une sortie dans la console. Obtenez-vous les textes ("Nouveau client est ici, le client a envoyé: ..." et ainsi de suite) dans la console? Qui NodeJS/Socket.io Versions utilisez-vous?
Je soupçonne que le socket.io.js le fichier n'est pas chargé dans votre navigateur. Avez-vous vérifié qu'il n'y a pas d'erreurs de script étant transmises par votre navigateur? Assurez-vous que votre balise de script est de référencement sur le chemin d'accès correct /socket.io/socket.io.js
OriginalL'auteur Derrish Repchick