0

所以,我用 Node.js 建立了一个服务器。唯一的问题是客户端页面似乎无法访问。这是我的服务器端代码:

var HTTP = require("http");
var IO = require("socket.io");
var Server = HTTP.createServer(function(Request, Response){
    Response.writeHead(200, {"Content-Type": "text/html", "Location": __dirname + "/Chat.html"});
    Response.end("<h1> Hello!</h1>");
}).listen(8080);
var Socket = IO.listen(Server);
var UsersOnline = {};
Socket.on("connection", function(socket){
    socket.on("ENTER", function(){
        console.log("A");
    });
});

这是我的客户端代码:

<script src="/socket.io/socket.io.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script>
    $(function(){
        Console.log("A");
        var socket = new io.Socket("localhost", { "port":8080});
        socket.connect();
        socket.on("connect", function(){
            socket.emit("ENTER");
            console.log("A");
        });
    });
</script>
<h1>ABC</h1>

页面上出现“ABC”或“A”。我不知道为什么会这样。有没有办法将单独的页面用作客户端脚本?

4

1 回答 1

0

您正在尝试通过标题发送您的 html。要发送静态 html,只需获取文件并单独发送即可。使用这个例子

var HTTP = require("http");
var IO = require("socket.io");
var fs = require('fs');
var index = fs.readFileSync('Chat.html');
var Server = HTTP.createServer(function(Request, Response){
    Response.writeHead(200, {"Content-Type": "text/html", "Location": __dirname + "/Chat.html"});
    Response.end(index);
}).listen(8080);
var Socket = IO.listen(Server);
var UsersOnline = {};
Socket.on("connection", function(socket){
    socket.on("ENTER", function(){
        console.log("A");
    });
});
于 2013-03-02T08:01:20.697 回答