web-dev-qa-db-fra.com

Où se trouve le fichier .js côté client Socket.IO?

J'essaye de faire fonctionner socket.io (bibliothèque de nœuds).

J'ai le serveur côté serveur js, et il est à l'écoute. Le site web socket.io dit simplement:

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost');
  socket.on('news', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });
</script>

C'est Nice, cependant, quel fichier JS est-ce que je suis en train d'importer!?!

Je suis allé dans le répertoire node_modules, où j'ai installé socket.io via npm, et à l'intérieur de socket.io/lib/ se trouve le fichier socket.io.js. Cependant, il s’agit du côté serveur (utilise la phrase require(), qui se trompe sur le client).

J'ai passé une heure à regarder autour de moi et je ne parviens pas à faire fonctionner un fichier client .js.

Qu'est-ce que je rate?

29
dthree

J'ai finalement réussi à y répondre moi-même.

La page de démarrage de socket.io n'est pas claire à ce sujet, mais j'ai constaté que le côté serveur de socket.io héberge automatiquement le fichier .js sur le nœud de démarrage, dans le répertoire spécifié dans la documentation:

"/socket.io/socket.io.js"

Donc, vous pointez simplement sur cette URL, quelle que soit la structure de votre application Web, et cela fonctionne.

35
dthree

Je suggérerais de vérifier si votre répertoire node_modules est au plus haut niveau de votre répertoire app. De plus, je pense que vous devez spécifier un numéro de port; vous devriez écrire quelque chose comme var socket = io.connect('http://localhost:1337');, où le numéro de port est 1337.

4
Shrey Gupta

Ici vous pouvez trouver CDN pour différentes versions. 

1
refactor

Si vous avez fait npm installer alors le fichier socket.io du client est situé à node_modules/socket.io-client/dist/socket.io.js

0
Anshul Bisht

Le client est disponible de plusieurs manières:

  • fourni par le serveur socket.io à /socket.io/socket.io.js
  • inclus via webpack en tant que module socket.io-client
  • via le CDN officiel https://cdnjs.cloudflare.com/ajax/libs/socket.io/<version>/socket.io.js

Pour le premier, le serveur peut être configuré de deux manières:

// standalone
var io = require('socket.io')(port);

// with existing server from e.g. http.createServer or app.listen
var io = require('socket.io')(server);
0
OrangeDog