0
我有我的應用程序的2個部分的註冊,和索引/登錄,案件是,我想更新每次用戶獲得註冊,這是做了困難的一部分,這是讓該索引顯示從開始的查詢並且不由寄存器發送。代碼:Socket.io不發送數據
指數腳本:
<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);
})
});
});
我不知道爲什麼,因爲它是相同的代碼...
不相關,但你真的不應該使用這樣的全局變量。而不是使它成爲全局只是導出mysql和io對象,並且需要require('./ mysql.js')和require('./ io.js') –
我知道但只是一個測試項目,我來自PHP我發現它變化很大,我唯一需要的就是這項工作。稍後我會看到如何獲得更好的代碼:D – jaume5900
只要確保你知道:)。您是否嘗試過打開Chrome/safari/firefox開發工具並檢查web套接字是否打開併發送任何數據?我們可以看到你設置/附加socket.io到你的http服務器的代碼嗎? –