利用node.js來實現長連接/聊天(通訊實例)


首先:

需要在服務器端安裝node.js,然后安裝express,socket.io這兩個模塊,並配置好相關的環境變量等。

其次:

服務端代碼如下:

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen(3031);

io.on('connection', function (socket) {
    console.log('websocket has connected');
    socket.emit('message', {
        static: 0
    });
    socket.on('num', function (data) {
        console.log(data.num);
        io.sockets.emit('last', {
            result: data.num
        });
    });
});

前端代碼1如下:

<!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">
    <title>Document</title>
    <script src="socket.io.js"></script>
    <script src="jquery.min.js"></script>
</head>

<body>
    <div class="result">1</div>
    <div class="addOne">加1</div>
    <script>
        var socket = io.connect('http://localhost:3031');
        socket.on('message', function (data) {
            console.log(data);
        });
        var result = 0;
        $('.addOne').click(function () {
            result += 1;
            $('.result').html(result);
            socket.emit('num', {
                num: result
            })
        });
    </script>

</body>

</html>

前端代碼2如下:

<!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">
    <title>Document</title>
    <script src="socket.io.js"></script>
    <script src="jquery.min.js"></script>
</head>

<body>
    <div class="result">加1</div>
    <script>
        var socket = io.connect('http://localhost:3031');
        socket.on('message', function (data) {
            console.log(data);
        });
        socket.on('last', function (data) {
            console.log(data);
            $('.result').html(data.result);
        });
    </script>
</body>

</html>

 

小結:通過以上代碼,我們可以實現類似於聊天的功能,或者長連接功能。

注意,及時通訊的功能,不同於普通的請求,相應。而是一直保持通訊中,前端發送,后端接收,后端然后再發送,前端再相應,這樣保持着一直的連接。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM