web-dev-qa-db-ja.com

socket.ioクライアントライブラリはどこにありますか?

私が見た限り、socket.ioがWebサーバーとして使用されていない場合、node.jsのクライアント側スクリプトの場所についての説明はありません。クライアント側ファイルのディレクトリ全体を見つけましたが、それらを結合バージョンで必要とします(node.js Webサーバーを使用するときに提供されるように)。何か案は?

75
Braun Shedd

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

そのファイルをサーバーが提供する場所にコピーします。

67
EhevuTov

これを行うために私が見つけた最良の方法は、 bower を使用することです。

bower install socket.io-client --save

アプリのHTMLに次を含めます。

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

そうすれば、他の管理パッケージを扱うのと同じ方法で、クライアントのsocket.io部分を扱うことができます。

171
Matt Way

私はこのURLからそれをロードするのが良いと適切な方法だと思います

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

socket.ioが実行されているドメイン上。このソリューションの利点は、socket.io npmモジュールを更新すると、クライアントファイルも更新されるため、毎回手動でコピーする必要がないことです。

25
Capaj

Matt Wayの答えで示唆されているように、私はbowerを使用しましたが、それはうまく機能しましたが、ライブラリ自体には独自のbower.jsonファイルがありませんでした。

これは、依存関係のJSファイルを見つけるために使用しているbower-main-files Gulpプラグインがsocket.ioをプルせず、ページの読み込み時にエラーが発生することを意味していました。プロジェクトのbower.jsonにオーバーライドを追加すると、問題が回避されました。

最初にbowerを使用してライブラリをインストールします。

bower install socket.io-client --save

次に、オーバーライドをプロジェクトのbower.jsonに追加します。

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

Wireepを実行し、「socket.io-clientがファイルに挿入されませんでした」を取得するすべてのユーザー向け。エラー:

次のように、wiredepタスクを変更します。

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

Bower.jsonを使用している場合は、socket.io-client依存関係を追加します。

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

次に、bower installを実行してsocket.io-clientをダウンロードします。

次に、HTMLにスクリプトタグを追加します。

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

このようにインストールできるbower互換のsocket.io-clientを作成しました:

bower install sio-client --save

または開発用:

bower install sio-client --save-dev

repo へのリンク

2

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>
0
IHeartAndroid