[解決済み] Express 4 と express-generator の /bin/www で socket.io を使用する。
質問
私は Express プロジェクトで socket.io を使用しようとしています。Express Js 4 が発表された後、私は express-generator を更新し、現在、アプリの初期関数は以下の場所にあります。
./bin/www
ファイルに格納され、これらのバーを含みます (WWW ファイルのコンテンツ。
http://jsfiddle.net/avMa5/
)
var server = app.listen(app.get('port'), function() {..}
(チェックは
npm install -g express-generator
でチェックし、次に
express myApp
ということで、socket.ioのドキュメントがどのように起動するように求めているかを思い出してみましょう。
var app = require('express').createServer();
var io = require('socket.io')(app);
しかし、私は推奨されるように、app.jsの内部でそれを行うことはできません。これは、動作するために./bin/wwwで行われる必要があります。./bin/wwwで、私はそれを動作させるために何ができるかを示しています。
var io = require('socket.io')(server)
これはうまくいくのですが、io 変数を他の場所で使うことはできませんし、 socket.io の関数を
www
ファイルには置きたくありません。
これは基本的な構文なのでしょうが、私はこれを動作させることができません。
module.exports = server
または
server.exports = server
も
module.exports.io = app(io)
www ファイルに
そこで質問ですが、この /bin/www ファイルをアプリの開始点として持っている socket.io をどのように使えばいいのでしょうか?
どのように解決するのですか?
それは本当に基本的なsintaxの問題であることが判明した...。私は以下の行を取得しました。 このsocket.ioチャットのチュートリアル ...
を ./bin/www の直後で実行します。
var server = app.listen(.....)
var io = require('socket.io').listen(server);
require('../sockets/base')(io);
というわけで、../sockets/base.jsファイルを作成して、その中にこの小さな仲間を配置します。
module.exports = function (io) { // io stuff here... io.on('conection..... }
やったー! これで動くようになりました... ということは、私は本当に /bin/www の中で socket.io を開始する以外に選択肢がなかったのだと思います、なぜなら私の http サーバはそこで開始されたからです。
目標は、他のファイルでソケット機能を構築し、モジュール化を維持することです。
require('fileHere')(io);
関連
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] socket.ioとwebsocketの違いについて
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] Chart.jsを使ってドーナツチャートの中にテキストを追加するには?
-
[解決済み] javascript の関数から `undefined` と `null` のどちらを返すのが良いのでしょうか?
-
[解決済み] JavaScriptで、ある文字列が別の文字列の中に出現するすべてのインデックスを見つけるにはどうすればよいですか?
-
[解決済み] 文字列とラベルのローカライズとグローバリゼーションのベストプラクティス【終了しました
-
[解決済み] Node.jsのES6クラスをrequireで作る
-
[解決済み] JavaScript で `throw` の後に `return` をする必要がありますか?
-
[解決済み] jQueryのバージョン1、バージョン2、バージョン3の違いは何ですか?[クローズド]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] reactのrender関数でdynamic hrefを作成するには?
-
[解決済み] なぜ "use strict "はパフォーマンスを10倍向上させるのか?
-
[解決済み] WebStormで未解決の変数が大量にある場合の警告に対処する方法は?
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] JSXとLoadshを使用して、ある要素をn回繰り返す方法
-
[解決済み] Javascript / jQueryでAndroid端末を検出する。
-
[解決済み] AngularJS - ngRepeatフィルタリングされた結果の参照を取得する方法
-
[解決済み] $.ajax実行中にローディングイメージを表示する
-
[解決済み] なぜjavascriptのES6 Promisesはresolve後も実行を継続するのですか?
-
[解決済み] JavaScript で `throw` の後に `return` をする必要がありますか?