如何将socket.io与Node.js上的一些简单的静态http服务器结合起来?

时间:2015-10-12 16:06:04

标签: javascript node.js socket.io

我已经创建了一个Socket.IO应用程序,我甚至已经有了一些交互工作。但我仍然在Apache HTTP服务器(localhost,XAMPP bundle)上托管静态内容。实际上在运行Node.js时,这是我的工作目录:

C:\xampp\htdocs\game>node nodeGame.js

我想将其全部移动到其他地方,可能会将其转换为npm包,并使用Node.js向用户提供HTML和JavaScript文件。如果我可以安装一些可以传递给http的简单处理程序,那将是最好的。类似的东西:

  var http = Http.Server(require("really-simple-http-server"));
  var io = SocketIo(http);
  // Sockets below

我在StackOverflow上找到的所有服务器都不是那么简单,所以最适合这个目的以及如何使用它?

1 个答案:

答案 0 :(得分:1)

您可以将socket.io与Express框架一起使用(使用Express作为您的Web服务器),然后使用d3.csv来提供静态文件:

queue(1)
    .defer(d3.csv, "path_to.csv")
    .defer(d3.json, "path_to.json")
    .await(ready);

function ready(error, csvData, jsonData) {
    if(error) return console.log("error: " + error.responseText);
    csvData.forEach(function(d) {origins.push(d.o_geoid)})
    // Limit GeoJSON features to those in CSV
    for(var i = jsonData.features.length - 1; !error && i >= 0; i--) {
        if($.inArray(jsonData.features[i].properties['GEOID10'], origins) != -1) {
            geoJSON.features.push(jsonData.features[i]);
        }
    }
}

使用Express提供静态文件的选项的详细信息为here