簡體   English   中英

為什么我的Node.js服務器掛起了這個小腳本?

[英]Why does my Node.js server hang with this small script?

編輯:下面回答

這里是Node.js的新功能,我真的很想知道為什么當我嘗試連接到創建的服務器時,此腳本永遠掛起。

當我嘗試創建服務器時,我經常發生這種情況,但我不確定為什么會發生這種情況,因為這似乎是通過非常相似的代碼發生的:

節點腳本:

var http = require("http");
var file = require("fs");

var server = http.createServer(function(request, response)
{
    file.readFile("chat.html", "UTF-8", function(error, content)
    {
        if(error) { console.error(error.stack); response.end(); }
        response.writeHead(200, {"content-type" : "text/html"});
        response.end(content);
    });
}).listen(1994, function(){console.log("Listening");});

var websocket = require("socket.io").listen(server);

websocket.sockets.on("connection", function(socket)
{
    socket.emit("message", {"message" : "Hello World"});
});

HTML:

<!DOCTYPE HTML>
<html>
    <head>
        <title>Chat</title>
        <meta charset="utf-8">
        <script src="/socket.io/socket.io.js"></script>
        <script>
            var socket = websocket.connect();

            socket.on("message", function(message)
            {
                console.log(message);
            });
        </script>
    </head>
    <body>
        <div>Socket file.</div>
    </body>
</html>

如果有錯誤,則應該結束響應,如果沒有錯誤,則應該終止響應,或者它與Web套接字有關?

嘗試更改您調用socket.io

var websocket = require('socket.io')(server);

websocket.on('connection', doStuff);

此示例直接來自GitHub上的文檔

問題出在websocket.connect() Socket.io使用io作為前端的全局對象,而不是websocket 因此應該是io.connect()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM