当新的socket.io数据出现时,我想页面更新。 我有一个服务器->客户端通讯: 服务器代码(n var是消息)
io2.on('connection', function(socket2) {
socket2.on('live', function(data2) {
console.log('status from live client:', data2);
socket2.emit('live', n);
});
});
实时页面代码:
var socket = io.connect('http://localhost:3002');
socket.emit('live', 'live client is connected');
socket.on('live', function(data) {
//alert(data)
document.getElementById("demo").innerHTML = data;
});
套接字工作正常,因为当我发送数据并刷新页面时,它会显示我想要的内容。问题是我想查看更新后的消息,而无需手动刷新。
谢谢!
答案 0 :(得分:0)
n的范围在第一个函数中未定义,因此接收函数没有任何显示。
您需要在原始发射函数中定义n。
答案 1 :(得分:0)
您需要将事件从服务器端发送到客户端,然后在其中捕获数据
var server = app.listen(3000);
var io = require('socket.io')(server);
io.on('connection', function(socket) {
socket.on('event', function(data) {
var n = data.message;
io.sockets.emit('event', message);
});
然后在实时页面的前端上编写
var n = <%-JSON.stringify(v1)%>;
var socket = io.connect('http://localhost:3000');
socket.on('event', (data)=>{
console.log(data)
});