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 に答える