-1

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 での作業に適している必要があることに注意してください。

4

1 に答える 1