2013-03-02 112 views
0

所以,我已经建立了一个Node.js的服务器。唯一的问题是客户端页面似乎无法访问。这是我的服务器端代码: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”出现在页面上。我不知道为什么会发生这种情况。有什么方法可以将单独的页面用作客户端脚本吗?

+0

您是否看到此错误代码?因为你需要'console.log','Console.log'行应该会抛出'ReferenceError:Console is not defined' – 2013-03-02 08:22:35

回答

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"); 
    }); 
});