2010-06-27 4 views
1

J'ai créé un serveur en utilisant l'écoute de nœud sur le port 8000, localhost. Vérifié, il fonctionne correctement, mais je ne peux pas accéder à WebSocket sur le client (Chrome 5). J'ai essayé plusieurs implémentations de différents repos Git, node + websocket, socketIO, articles, etc. Rien.Node.js, Problème de localisation WebSocket?

Aucun conflit de port (sudo lsof -i tcp); Essayé server.listen (8000, "*"); Pointé vers ws = new WebSocket ("ws: //: 8000/test"); Debian Lenny , apache22 Noeud v0.1.98-31-g1c6671a

Je pense qu'il peut y avoir un conflit avec réécriture d'URL. Ou autorisations possibles. Des idées?

Répondre

0

J'ai eu un problème similaire sur Ubuntu 10.04 LTS 32 bits et Chrome 5.0.375.125 et a trouvé ce bogue dans Chrome. Voici comment vous pouvez tester et contourner le problème. J'ai utilisé WebSocket avec PHP et plus tard Node.JS:

PHP: Téléchargez un fichier tutoriel de http://net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/ et extrayez-le dans un dossier appelé 'socket' dans votre site web. Ce dossier contient maintenant un readme.txt et les dossiers 'server' et 'client'. Maintenant, lancez le script dans la console en fonction du readme (pour moi la commande était: sudo php -q /var/www/socket/server/startDaemon.php). Il devrait imprimer 'Commencer à écouter sur Socket'. . Laissez la fenêtre de la console ouverte. Maintenant, allez dans localhost/socket/client/client.php dans Chrome. Il devrait indiquer 'Socket Status 0' et si vous regardez dans la console vous ne voyez pas de nouveaux messages (aucune connexion n'a été faite).

Maintenant, voici l'astuce: ouvrez un deuxième onglet Chrome. Pointez cet onglet vers la même URL: localhost/socket/client/client.php (il est également indiqué 'Socket Status 0'). Et puis fermez-le à nouveau. Votre onglet d'origine devrait maintenant indiquer 'Socket Status: 1 (open)' et dans la console vous verrez une poignée de main a été faite. WebSocket fonctionne maintenant.

Je répète la même astuce que ci-dessus mais cette fois en utilisant Node.JS avec le script Socket.IO. L'exemple de chat inclus dans Socket.IO-node (github.com/LearnBoost/Socket.IO-node) présentait le même problème, suspendu à l'étape 'Connecting ...'. Ouvrir un deuxième onglet dans la boîte de dialogue puis le refermer a résolu le problème et la boîte de discussion s'est chargée correctement. Le serveur Node.JS a confirmé la connexion dans la console. Dès lors, WebSocket a bien fonctionné.