簡體   English   中英

Socket.io不發送數據

[英]Socket.io not sending data

我的應用程序有兩個部分,一個是注冊,另一個是索引/登錄,這種情況是我想在用戶每次注冊時都進行更新,這樣做的難點是使索引從頭開始顯示查詢,沒有被寄存器發送。 碼:

索引腳本:

<script>
    var socket = io();
    socket.on('registered', function (msg) {
        $('#messages').empty().append(msg).hide().fadeIn(500);
        console.log(msg);
    });
    function message() {
        var mes = document.getElementById('text').value;
        console.log(mes);
        socket.emit('registered', mes);
    }
</script>

獲取用戶的索引代碼:

global.mysql.query("SELECT * FROM users ORDER BY id DESC LIMIT 4", function (err, rows, fields) {
        if (err) throw err;
        var msg = "";
        for(var i = 0; i <= rows.length-1; i++) {
            msg += rows[i].username + '<br>';
        }

        global.io.sockets.emit('registered', msg);

    })

來自寄存器的代碼:

router.post('/register', function(req, res, next) {
    global.mysql.query("INSERT INTO users (id, username) VALUES (?,?)", [null, req.body.user], function () {
        global.mysql.query("SELECT * FROM users ORDER BY id DESC LIMIT 4", function(err, rows, fields) {
            if (err) throw err;
            var msg = "";
            for(var i = 0; i <= rows.length-1; i++) {
                msg += rows[i].username + '<br>';
            }
            global.io.sockets.emit('registered', msg);
        })
    });
});

我不知道為什么,因為它是相同的代碼...

我修復了將io.on放入路由器的問題:

router.get('/', function(req, res, next) {
    res.sendFile(global.path + '/views/index.html');
    global.mysql.query("SELECT * FROM users ORDER BY id DESC LIMIT 4", function (err, rows, fields) {
        if (err) throw err;
        var msg = "";
        for(var i = 0; i <= rows.length-1; i++) {
            msg += rows[i].username + '<br>';
        }
        global.io.on('connection', function(socket){
            console.log('a user connected');

            global.io.sockets.emit('registered', msg);

            socket.on('disconnect', function(){
                console.log('user disconnected');
            });
        });

    })
});

希望它可以幫助任何人!

暫無
暫無

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

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