2014-01-19 3 views
0

작동하는 socket.io 서버가 있고 실행 중이며 서버 측 socket.io 클라이언트를 구현하려고합니다. 아래는 테스트를 위해 사용한 코드 조각입니다. 이 문제는 클라이언트가 메시지를 한 번만 출력한다는 것을 의미합니다.이 경우에는 '환영'메시지 만 수신됩니다. 브라우저를 통해 '메시지'라는 비공개 채널로 메시지를 보내려고했지만 서버가 메시지를 성공적으로 수신하고 내보낼 수는 있지만 출력이 표시되지 않습니다.연결 성공 후 Socket.io-client가 메시지를받지 못합니다.

var io = require('socket.io-client'); 
    var socket = io.connect('http://localhost:3000', {'force new connection': true}); 
    socket.on('connect', function(){ 
      socket.on('message', function (data) { 
        console.log(data); 
      }); 
    }); 

서버

var io = require('socket.io').listen(server); 
    var i=0; 

    io.sockets.on('connection', function (socket) { 
      socket.emit('message', { 'msg': 'Welcome'}); 
      socket.on('message', function (from, msg) { 
        socket.emit('message', { 'msg': 'Hello World - ' + i }); 
        i++; 
      }); 
    });   

답변

0

당신이이 일을 시도 해 봤나 클라이언트?

console.log(data.msg); 
0

당신은 "이"을 "소켓"를 변경 시도 할 수

this.emit('message', { 'msg': 'Hello World - ' + i }); 
0

당신은 서버에 클라이언트 측에서 방출해야한다. 따라서 서버는 데이터를 다시 클라이언트로 보낼 수 있습니다. 이 코드는 잘 :-) 작동 추측

클라이언트

var io = require('socket.io-client'); 
var socket = io.connect('http://localhost:3000', {'force new connection': true}); 
socket.on('connect', function(){ 

     socket.on('messageRecieved', function (data) { 
       console.log(data); 
     }); 

     socket.emit('message','some message'); 
}); 

서버

var io = require('socket.io').listen(server); 
var i=0; 

io.sockets.on('connection', function (socket) { 
     socket.on('message', function (msg) { 
       console.log(msg); 
       socket.emit('messageRecieved', { 'msg': 'Hello World - ' + i }); 
       i++; 
     }); 
}); 
관련 문제