如何使用nodejs中的socket读取从服务器接收的数据?

时间:2016-06-18 13:17:15

标签: node.js sockets

我正在尝试将数据从服务器发送到客户端,所以我编写了这个小程序: server.js:

    var http=require("http");
var express=require("express");
var app=express();
var server=http.createServer(app);
var io=require("socket.io")(server);
var path=require("path");


server.listen(4000,function(){
    console.log("server listen on port 4000");
});




app.set('views',path.join(__dirname,'views'));
app.set('view engine','ejs');


app.get("/",function(req,res,next){

    res.render('client');

});

io.sockets.on("connection",function(socket){


    socket.emit("message","hello");
})

client.ejs:

    <!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<title>test</title>
</head>
<body>
<label class="label1">Name</label>

<script src="socket.io/socket.io.js"></script>
<script>
var socket=io.connect();

socket.on("message",function(message){


    $('.label1').text(message);
});
</script>
</body>
</html>

当我运行我的服务器并测试我的程序时,标签值没有改变。任何人都告诉我我的错误是什么?

1 个答案:

答案 0 :(得分:1)

当你在HTML中使用jQuery($('.label1')$是jQuery)时,你需要添加jQuery库:

<!doctype html>
<html>
<head>
<meta charset="utf-8"/>

<title>test</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
</head>
<body>
<label class="label1">Name</label>

<script src="socket.io/socket.io.js"></script>
<script>
var socket=io.connect();

socket.on("message",function(message){


    $('.label1').text(message);
});
</script>

</body>
</html>

此外,一个好的做法是,当某些东西不起作用时,查看控制台(F12)并理解错误。