0

我正在学习 Node 并且有一个我似乎无法找到答案的问题。在以下简约聊天服务器示例中,节点服务器希望客户端页面与服务器文件位于同一目录中,如果我正在为移动设备构建客户端应用程序,我将如何将数据发送回正确的客户?

    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

你遇到这个问题了吗?如果是这样,也许使用用于 WebSockets 的 phonegap iOS / Android 插件可能会对您有所帮助。

作为参考,这里是什么res.end(fs.readFileSync(__dirname + '/index.html'));意思:

  1. 同步读取文件 index.html 的内容(位于服务器当前目录)

  2. 在通过网络将文件内容发送给请求页面的客户端(可以是本地机器、电话、互联网上的计算机——任何有权访问服务器的人)之后,结束 HTTP 响应。换句话说,节点充当页面 index.html 的 HTTP 服务器

  3. index.html 大概包含一些socket相关的代码,指示客户端连接到服务器上的socket(服务器的socket是由创建的socketio.listen(server)

于 2012-08-09T00:34:42.487 回答