Node.js中的跨域连接

时间:2012-08-08 23:58:05

标签: javascript node.js socket.io

我正在学习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);
    });
});

1 个答案:

答案 0 :(得分:1)

您是否遇到this problem?如果是这样,也许使用适用于WebSockets的phonegap iOS / Android插件可能对您有所帮助。

供参考,以下是res.end(fs.readFileSync(__dirname + '/index.html'));的含义:

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

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

  3. 的HTTP服务器
  4. Index.html可能包含一些与套接字相关的代码,指示客户端连接到服务器上的套接字(服务器的套接字由socketio.listen(server)创建)