sailsを一旦諦めて、Express4系 + Socket.ioを使ってみました。
その際に、/socket.io/socket.io.jsが生成されない現象でハマったので、メモします。
Express4はだいぶちがう
Expressはsailsの内部でも使用されている、node.jsのwebアプリケーションフレームワークです。
Express3とExpress4でだいぶ書き方が変わってしまったのが特徴です。
bin/www
主な変更点として、bin/wwwというファイルが追加されたことが挙げられます。
Express3までは、アプリケーション実行の際に
1
|
|
と実行していたのに対し、Express4では、
1
|
|
と実行する必要があります。実際には内部でコマンドがラップされ、npm start
と打てばいいんですが。
Socket.ioではまった
Socket.ioの内容を、記事頼りにapp.js内部に書いていました。すると、どうしても動かない。
/socket.io/socket.io.jsが404となってしまいます。
これはsocket.ioが実行される際に自動生成されるファイルです。設定がおかしいみたいでした。
解決
解決方法は、bin/www内部にsocket.ioの記述をするというものでした。
変更後のbin/wwwを以下に示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
こうすることで、動作させることが出来ました。
結論
Expressはバージョンによって違いが大きいから、ググるときは”Express 4”と指定しよう。