2014-10-23 6 views
0

그래서이 질문에 대한 이전 답변을 확인했는데 응답이 내 코드에서 작동하지 않는 것 같습니다.socket.io에 문제가 발생했습니다. 소켓이 정의되지 않았습니다. 오류

지금 채팅 기록을 저장할 데이터베이스를 배포하려고하지만 소켓이 정의되지 않은 오류가 계속 발생합니다.

socket.on('person', function(msg){ 
    console.log('person: ' + msg); 
    socket.broadcast.emit('person', msg); 
    client.incr('msg_id', function(err, msg_id) { 
     console.log('msg_id', msg_id); 
     client.hset('history', msg_id, msg); 
    }); 
    }); 

socket.on ('사람'기능 { ^ ReferenceError가 (MSG) : 소켓이

내가하지 않았기 때문에 그것을인가를 정의되지 여기

문제가있는 코드 내 다른 코드에서 제대로 '사람'을 정의 했습니까?

+0

문제는 코드에서 다른 곳에있다. 'socket'은 어디에서 왔습니까? 어디에서나 해제합니까? – mscdex

답변

0

소켓 변수가 정의되어 있지 않습니다.

코드는 socket.io 연결 콜백 내에 위치해야합니다. socket.io +를 사용하여

전체 예는 표현 :

var app = require('express')(); 
var http = require('http').Server(app); 
var io = require('socket.io')(http); 

io.on('connection', function(socket){ 
    socket.on('person', function(msg){ 
    console.log('person: ' + msg); 
    socket.broadcast.emit('person', msg); 
    client.incr('msg_id', function(err, msg_id) { 
     console.log('msg_id', msg_id); 
     client.hset('history', msg_id, msg); 
    }); 
}); 
관련 문제