it-swarm-pt.tech

Onde está a biblioteca do cliente socket.io?

Até onde eu vi, não há explicação sobre onde devemos localizar o script do lado do cliente para socket.io E se node.js não é usado como servidor da web. Encontrei um diretório inteiro de arquivos do lado do cliente, mas preciso deles em uma versão combinada (como se fosse exibida ao usar servidores da web node.js.). Alguma ideia?

75
Braun Shedd

socket.io.js é o que você colocará no html do lado do cliente. Algo como:

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

meu script está localizado:

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

copie esse arquivo para onde você deseja que seu servidor o sirva.

67
EhevuTov

A melhor maneira que encontrei para fazer isso é usar bower .

bower install socket.io-client --save

e inclua o seguinte no HTML do seu aplicativo:

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

Dessa forma, você pode tratar a parte socket.io do seu cliente da mesma forma que qualquer outro pacote gerenciado.

171
Matt Way

Eu acho que a maneira melhor e adequada é carregá-lo a partir deste URL

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

no domínio em que socket.io é executado. O que é positivo nessa solução é que, se você atualizar o módulo socket.io npm, o arquivo do cliente também será atualizado e você não precisará copiá-lo todas as vezes manualmente.

25
Capaj

Usei o bower como sugerido na resposta de Matt Way, e isso funcionou muito bem, mas a biblioteca em si não tinha seu próprio arquivo bower.json.

Isso significava que o plug-in Gulp bower-main-files Que eu estou usando para encontrar os arquivos JS das minhas dependências não puxou o socket.io e estava recebendo um erro no carregamento da página. Adicionar uma substituição ao bower.json Do meu projeto resolveu o problema.

Primeiro instale a biblioteca com o bower:

bower install socket.io-client --save

Em seguida, adicione a substituição ao bower.json do seu projeto:

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

Para todos que executam o wiredep e obtém o "socket.io-client não foi injetado no seu arquivo". erro:

Modifique sua tarefa wiredep da seguinte maneira:

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

Se você estiver usando o bower.json, inclua a dependência do socket.io-client.

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

Em seguida, execute instalação do bower para baixar o socket.io-client.

Em seguida, adicione a tag de script no seu HTML.

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

Eu criei um socket.io-client compatível com o pavilhão que pode ser instalado assim:

bower install sio-client --save

ou para uso em desenvolvimento:

bower install sio-client --save-dev

link para repo

2
Sina Sharafzadeh

se você usar https://github.com/btford/angular-socket-io certifique-se de ter seu index.html assim:

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