基于node.js和scoket.io的webScoket简单服务器客户端搭建

通过websocket,服务器可以主动给客户端发消息,并且不需要每次都http请求一下,下面是我写的一个简单小程序;

  • 服务器端node.js

var app = require('express')();  
var http = require('http').Server(app);  
var io = require('socket.io')(http);  
  
app.get('/', function(req, res){  
    res.send('<h1>Welcome Realtime Server</h1>');  
});  
  
io.on('connection', function(socket){  
    console.log('a user connected');
    //连接后定时发送信息  
    setInterval(function(){
        io.emit('message', "正在连接");
    },2000); 
      
    //监听用户发布聊天内容  
    socket.on('message', function(obj){  
        //向所有客户端广播发布的消息  
        io.emit('message', obj);  
        console.log(obj.username+'说:'+obj.content);  
    });  
    
});  


http.listen(3000, function(){  
    console.log('listening on *:3000');  
});
  • 前端展示
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.1.0/socket.io.dev.js"></script>
    <title>实时定位结果展示</title>
</head>

<body>
    <script src="./js/index.js"></script>
    <script>
        var socket
            = io.connect('ws://localhost:3000');
        socket.on('connect', function () {
            //连接成功
            console.log("success");
        });
        socket.on('disconnect', function (data) {
            //连接断开
            console.log("disconnect");
        });
        socket.on('message', function (data) {
            console.log(data);
        });
    </script>
</body>

</html>

运行结果如下图:网页端后台一直输出消息




猜你喜欢

转载自blog.csdn.net/gisuuser/article/details/80355505
今日推荐