Где находится клиентская библиотека socket.io? - PullRequest
75 голосов
/ 16 декабря 2011

Насколько я видел, нет никакого объяснения того, где мы должны найти скрипт на стороне клиента для socket.io, если node.js не используется в качестве веб-сервера. Я нашел целый каталог файлов на стороне клиента, но они мне нужны в комбинированной версии (как будто они используются при использовании веб-серверов node.js). Есть идеи?

Ответы [ 8 ]

171 голосов
/ 18 ноября 2013

Лучший способ сделать это - использовать bower .

bower install socket.io-client --save

и включить в HTML-код вашего приложения следующее:

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

Таким образом, вы можете обращаться с частью socket.io вашего клиента так же, как и с любым другим управляемым пакетом.

67 голосов
/ 16 декабря 2011

socket.io.js - это то, что вы собираетесь поместить в свой клиентский html. Что-то вроде:

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

мой скрипт находится:

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

скопируйте этот файл туда, куда вы хотите, чтобы его обслуживал ваш сервер.

25 голосов
/ 07 апреля 2013

Я думаю, что лучший и правильный способ загрузить его из этого URL

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

в домене, где работает socket.io. Преимуществом этого решения является то, что если вы обновляете модуль socket.io npm, ваш клиентский файл также обновляется, и вам не нужно каждый раз копировать его вручную.

8 голосов
/ 20 июля 2015

Я использовал bower, как предложено в ответе Мэтта Вея, и это сработало замечательно, но сама библиотека не имела своего собственного файла bower.json.

Это означало, что плагин bower-main-files Gulp, которыйЯ использую, чтобы найти, что JS-файлы моих зависимостей не извлекаются из socket.io, и я получаю сообщение об ошибке при загрузке страницы.Добавление переопределения к bower.json моего проекта решило эту проблему.

Сначала установите библиотеку с помощью bower:

bower install socket.io-client --save

Затем добавьте переопределение в bower.json вашего проекта:

"overrides": {
  "socket.io-client": {
    "main": ["socket.io.js"]
  }
}
6 голосов
/ 07 ноября 2014

Для всех, кто запускает wiredep и получает «socket.io-client не был введен в ваш файл». Ошибка:

Измените задачу wiredep следующим образом:

wiredep: {
  ..
  main: {
    ..
    overrides: {
      'socket.io-client': {
        main: 'socket.io.js'
      }
    }
  }
2 голосов
/ 09 февраля 2015

Я создал bower-совместимый socket.io-клиент, который можно установить следующим образом:

bower install sio-client --save

или для использования в разработке:

bower install sio-client --save-dev

ссылка на репо

2 голосов
/ 06 мая 2014

Если вы используете bower.json, добавьте зависимость socket.io-client.

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

Затем запустите bower install для загрузки socket.io-client.

Затем добавьте тег script в ваш HTML.

<script src="bower_components/socket.io-client/dist/socket.io.min.js"></script>
0 голосов
/ 30 сентября 2015

если вы используете https://github.com/btford/angular-socket-io убедитесь, что ваш index.html такой:

<!-- 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>
...