2011-12-16 6 views
71

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

答えて

65

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 

は、あなたのサーバがそれを提供したい場所にそのファイルをコピーします。

+3

恐縮です。ファイルがディレクトリ構造の混乱のどこにあるのか分からなかった:) –

+4

それは論理的ではない。 socket.ioを使っている多くの人がそれを聞いています。すべてのベスト:-) – EhevuTov

+4

おかげで男!ドキュメントやサンプルにそのことに関する情報がないのは変です。 – Peter

25

は私がより良いと適切な方法を実行しsocket.ioドメインにこのURL

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

からそれをロードすることであると思います。この解決策で肯定的な点は、socket.io npmモジュールを更新すると、クライアントファイルも更新され、毎回手動でコピーする必要がないということです。

+1

これはIMOに最適な回答です。これは、Socket.IOのドキュメントからのクライアントサイドインクルードの推奨使用法です。 @Capajが述べた利点とともに、それがどこから来ているのかを説明するだけです。 –

+15

これは、接続を行うWebサイトにIF Node.jsがサービスする最良のソリューションです。それは本当に大きなIFです。 –

169

これを行うには、bowerを使用することをお勧めします。

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

あなたのクライアントのsocket.io一部にあなたが他の管理パッケージを扱うのと同じ方法で扱うことができますこの方法:

bower install socket.io-client --save 

とは、アプリケーションのHTMLに以下が含まれます。

+5

これは最高のソリューションです、ありがとう!これが誰かを助ける場合には、minified socket.ioクライアントは 'bower_components/socket.io-client/dist/socket.io.min.js' – mikermcneil

+5

bower ftwにあります。

+0

"bowerInstall:target"(bowerInstall)タスクを実行中 socket.io-clientがファイルに挿入されていません。 "client/bower_components/socket.io-client"で必要なファイルを探してから手動でファイルに追加してください。 – smk

2

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

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

はその後亭socket.io-クライアントをダウンロードするをインストールを実行します。

次に、HTMLにscriptタグを追加します。

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

wiredepを実行し、「socket.io-clientがファイルに挿入されていません」と表示されるすべての人エラー:私はバウアー互換ソケットを作成している

wiredep: { 
    .. 
    main: { 
    .. 
    overrides: { 
     'socket.io-client': { 
     main: 'socket.io.js' 
     } 
    } 
    } 
+0

@ k-dこれは解決しましたが、それはなぜですか? 'socket.io-client'ではデフォルトではどうなりませんか? – Nitzankin

+0

彼らはバワーをサポートしたくないので。 –

2

は、このようなあなたのwiredepタスクを変更します。で提案されているように、私は亭を使用repo

+0

更新プログラムをリリースしますか? socketioは1.3.5になりました。あなたは何らかの理由で非常に遅くて厄介です。 –

+0

が1.3.5に更新されました –

+0

おそらく、クライアントのバージョンを自動更新する方法がありますか? – Diogyn

8

bower install sio-client --save-dev 

リンク:

bower install sio-client --save 

や開発の使用のために:次のようにインストールすることができIO-クライアントマット・ウェイの答え、それは素晴らしい仕事でしたが、 fには独自のbower.jsonファイルがありませんでした。

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

まず亭でライブラリをインストールします。

bower install socket.io-client --save 

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

"overrides": { 
    "socket.io-client": { 
    "main": ["socket.io.js"] 
    } 
} 
0

あなたが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> 
関連する問題