web-dev-qa-db-fra.com

Où se trouve la bibliothèque client socket.io?

Pour autant que je sache, il n'y a aucune explication quant à l'emplacement du script côté client pour socket.io si node.js n'est pas utilisé comme serveur Web. J'ai trouvé tout un répertoire de fichiers côté client, mais j'en ai besoin dans une version combinée (comme il est servi lors de l'utilisation des serveurs Web node.js). Des idées?

75
Braun Shedd

socket.io.js est ce que vous allez mettre dans votre html côté client. Quelque chose comme:

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

mon script se trouve:

/usr/local/lib/node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js

copiez ce fichier là où vous souhaitez que votre serveur le serve.

67
EhevuTov

La meilleure façon de le faire est d'utiliser bower .

bower install socket.io-client --save

et incluez les éléments suivants dans le code HTML de votre application:

<script src="/bower_components/socket.io-client/socket.io.js"></script>

De cette façon, vous pouvez traiter la partie socket.io de votre client de la même manière que vous traitez tout autre package géré.

171
Matt Way

Je pense que le meilleur moyen est de le charger à partir de cette URL

src="/socket.io/socket.io.js" 

sur le domaine où socket.io s'exécute. Ce qui est positif sur cette solution, c'est que si vous mettez à jour votre module socket.io npm, votre fichier client est également mis à jour et vous n'avez pas à le copier à chaque fois manuellement.

25
Capaj

J'ai utilisé bower comme suggéré dans la réponse de Matt Way, et cela a très bien fonctionné, mais la bibliothèque elle-même n'avait pas son propre fichier bower.json.

Cela signifiait que le plugin bower-main-files Gulp que j'utilise pour trouver les fichiers JS de mes dépendances ne récupérait pas socket.io, et j'obtenais une erreur lors du chargement de la page. L'ajout d'un remplacement au bower.json De mon projet a permis de contourner le problème.

Installez d'abord la bibliothèque avec bower:

bower install socket.io-client --save

Ajoutez ensuite le remplacement à bower.json de votre projet:

"overrides": {
  "socket.io-client": {
    "main": ["socket.io.js"]
  }
}
8
Dave Ceddia

Pour tous ceux qui exécutent wiredep et obtiennent le "socket.io-client n'a pas été injecté dans votre fichier". Erreur:

Modifiez votre tâche wiredep comme ceci:

wiredep: {
  ..
  main: {
    ..
    overrides: {
      'socket.io-client': {
        main: 'socket.io.js'
      }
    }
  }
6
K. D.

Si vous utilisez bower.json, ajoutez la dépendance socket.io-client.

"socket.io-client": "0.9.x"

Exécutez ensuite bower install pour télécharger socket.io-client.

Ajoutez ensuite la balise de script dans votre code HTML.

<script src="bower_components/socket.io-client/dist/socket.io.min.js"></script>
2

J'ai créé un client socket.io compatible avec Bower qui peut être installé comme ceci:

bower install sio-client --save

ou pour le développement:

bower install sio-client --save-dev

lien vers repo

2
Sina Sharafzadeh

si vous utilisez https://github.com/btford/angular-socket-io assurez-vous d'avoir votre index.html comme ceci:

<!-- https://raw.githubusercontent.com/socketio/socket.io-client/master/socket.io.js -->
<script src="socket.io.js"></script>

<!-- build:js({client,node_modules}) app/vendor.js -->
<!-- bower:js -->
<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/angular/angular.js"></script>
<!-- ...... -->
<script src="bower_components/angular-socket-io/socket.js"></script>
<!-- endbower -->
<!-- endbuild -->



<script type="text/javascript" charset="utf-8">
   angular.module('myapp', [
// ...    
'btford.socket-io'
]);

// do your angular/socket stuff
</script>
0
IHeartAndroid