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?
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.
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
.
Ici vous pouvez trouver CDN pour différentes versions.
Si vous avez fait npm installer alors le fichier socket.io du client est situé à node_modules/socket.io-client/dist/socket.io.js
Le client est disponible de plusieurs manières:
/socket.io/socket.io.js
socket.io-client
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);