【发布时间】:2015-01-04 14:13:26
【问题描述】:
为什么我的客户端没有使用 socket.io 和 node.js 自动更新?
我的后端接受来自 PHP 的 JSON POST 请求,然后将数据发送到所有连接的设备。
我的后端代码
app.post('/', function (req, res) {
console.log(req.body);
subdata = req.body;
res.send('ok');
});
io.sockets.on('connection', function (socket) {
socket.broadcast.emit('info', subdata);
});
客户端
<script>
var socket = io.connect('http://127.0.0.1:3000/');
socket.on('info', function (data) {
console.log(data);
});
</script>
【问题讨论】:
-
subdata是什么?不要使用全局变量。异步 JavaScript 代码中的全局变量几乎在所有情况下都是一个错误。 -
subdata 保存着
req.body中PHP发送的json -
我不是这个意思。
io.sockets.on('connection')回调中的subdata不存在。就你使用它的方式而言,它是一个全局变量,你不能在异步代码中使用全局变量。 -
我该如何解决这个问题?我是 nodejs 的新手
-
不了解基本情况做事是没有意义的
标签: javascript node.js sockets