2014-11-27 3 views
1

노드에서 브라우저로 모든 클라이언트와 보낸 사람에게 간단한 응답을 보내려고하지만이 오류가 계속 발생합니다. '정의되지 않음'이 처리 과정에서 잘못되었습니다. 나는 나의 목표를 달성하기 위해 socket.broadcast.emit 및 socket.emit을 사용할 수 있습니다 알고 있지만 io.socket.emit 내가io.socket.emit returns undefined

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

당신은'test_value' 메시지를받은 소켓으로 메시지를 보내려고합니까? 또는 연결된 모든 소켓에 연결하십시오. 연결된 모든 소켓에 – jfriend00

+0

을 보내주세요. – justSomeOne

답변

2

귀하의 코드는 다음을 제외하고 OK 보인다 여기

내 코드 생각 많이 청소기 . 모든 고객을 보내고 싶다고 말했습니까? 이 당신을 도울 수 있습니다 D

희망 :

io.sockets.emit('test results', { hello: 'Good' }); 
io.sockets.emit('test results', { hello: 'Bad' }); 

단지 io.socket (들) 때문에 모든 소켓 :

그런 다음

io.socket.emit('test results', { hello: 'Good' }); 
io.socket.emit('test results', { hello: 'Bad' }); 

로 변경합니다.