我正在尝试从节点到浏览器写一个简单的响应到所有客户端和发送者本身,但我继续发出此错误'发出未定义'我在这个过程中做错了什么?我知道我可以使用socket.broadcast.emit和socket.emit来实现我的目标,但io.socket.emit更干净我认为
这是我的代码
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io').listen(server);
var sql = require('mysql');
server.listen(3000);
app.get('/nodeThis', function (req, res) {
res.sendFile(__dirname + '/sample.html');
});
io.on('connection', function (socket) {
socket.on('test value', function (data) {
console.log(data);
if(data === '1') {
io.socket.emit('test results', { hello: 'Good' });
} else {
io.socket.emit('test results', { hello: 'Bad' });
}
});
});
答案 0 :(得分:2)
除了以下内容,您的代码似乎还可以。 你告诉过你想送每个客户。
然后改变
io.socket.emit('test results', { hello: 'Good' });
io.socket.emit('test results', { hello: 'Bad' });
要:
io.sockets.emit('test results', { hello: 'Good' });
io.sockets.emit('test results', { hello: 'Bad' });
只对所有套接字如此io.socket(s):D
希望这可以帮助你。