websocket を使用して node.js で実行されている単純なアプリケーションがあります。このアプリケーションは、css や js などを含むいくつかの html ページを提供するために node-static モジュールを使用します。フォルダ構造は次のとおりです。
-app
- index.html
- server.js
- img/
- base.png
- sub/
- sub.png
- scripts
- base.js
- sub/
- sub.js
- css
- base.css
- sub/
- sub.css
server.js はサーバー ファイルです。server.js 内には次のコードがあります。
var static = require('node-static');
var http = require('http');
var file = new(static.Server)();
var app = http.createServer(function (req, res) {
file.serve(req, res);
}).listen(process.env.PORT || 1234);
var WebSocketServer = require('websocket').server;
new WebSocketServer({
httpServer: app,
autoAcceptConnections: false
}).on('request', onRequest);
...
ルートを使用する必要があるため、node-static から Express に切り替える必要があります。このコードを使用しましたが、機能しません:
var express = require('express');
var app = express();
var http = require('http');
var httpServer = http.Server(app);
app.use(express.static(__dirname+'/app'));
app.get('/', function(req, res){
res.sendfile(__dirname + '/index.html');
});
app.listen(1234);
var WebSocketServer = require('websocket').server;
new WebSocketServer({
httpServer: app,
autoAcceptConnections: false
}).on('request', onRequest);
...
ファイルを提供できますが、websocket 接続が切断されます。どうしたの?このソリューションは、localhost と Heroku での作業に適している必要があることに注意してください。