0

私はノードを学習している途中で、答えが見つからないように見える質問があります。次の最小限のチャット サーバーの例では、ノード サーバーは、クライアント ページがサーバー ファイルと同じディレクトリに存在することを想定しています。モバイル デバイス用のクライアント側アプリを構築している場合、データを適切な場所に戻すにはどうすればよいでしょうか。クライアント?

    var fs = require('fs')
    , http = require('http')
    , socketio = require('socket.io');

var server = http.createServer(function(req, res) {
    res.writeHead(200, { 'Content-type': 'text/html'});
    **res.end(fs.readFileSync(__dirname + '/index.html'));** 
}).listen(8080, function() {
    console.log('Listening at: http://localhost:8080');
});

socketio.listen(server).on('connection', function (socket) {
    socket.on('message', function (msg) {
        console.log('Message Received: ', msg);
        socket.broadcast.emit('message', msg);
    });
});
4

1 に答える 1

1

この問題に遭遇していますか? もしそうなら、おそらく WebSocket 用の phonegap iOS / Android プラグインを使用すると役立つかもしれません。

参考までに、res.end(fs.readFileSync(__dirname + '/index.html'));意味は次のとおりです。

  1. ファイル index.html (サーバーの現在のディレクトリにある) の内容を同期的に読み取る

  2. ページを要求したクライアント (ローカル マシン、電話、インターネット上のコンピューターなど、サーバーにアクセスできる人) にネットワーク経由でファイルの内容を送信した後、HTTP 応答を終了します。つまり、node はページ index.html の HTTP サーバーとして機能しています。

  3. Index.html には、サーバー上のソケットに接続するようにクライアントに指示するソケット関連のコードが含まれている可能性があります (サーバーのソケットは によって作成されますsocketio.listen(server)) 。

于 2012-08-09T00:34:42.487 に答える