2014-11-28 5 views
2

net.Socket 모듈을 사용하여 EFNET에 연결하고 내 코드를 테스트하여 내 봇에 다시 연결 이벤트를 추가합니다.irc 서버를 연결 해제하여 nodejs irc bot을 테스트하려면 어떻게해야합니까?

봇의 연결을 끊을 수있는 방법은 무엇입니까? 문제는 연결이 끊어 매우 2~3주이다 - 나는 IRC에서 연결 해제 할 때 발생하는 이해하기 위해 이벤트 처리기를 추가 한 :

irc = { 
     info:{} 
    , listeners : [] 
    , socket : new net.Socket() 
} 


irc.socket.on('timeout', function() { 
    console.log('timeout'); 
}); 

irc.socket.on('error', function() { 
    console.log('error'); 
}); 

irc.socket.on('end', function() { 
    console.log('end??') 
    setTimeout(function() { 
     //irc.socket.connect(config.server.port, config.server.addr); 
    }, 1000); 
}); 

또는 사람이 실제 이벤트는 IRC 관련하여 일반적으로 발생에 대한 지식이있는 경우 봇, 나는 그것을 감사하겠습니다.

편집 # 1 : iptables으로 뭔가를 수행하고 포트가 실행 중이거나 그 행을 따라 뭔가를 처리 할 수 ​​있습니까?

답변

2

봇이 연결을 끊을 때 IRC 이벤트가 시작되지 않으면 클라이언트와 서버 간의 연결이 닫힙니다.

자신의 IRC 서버를 설치하고 KLINE 또는 GLINE 명령 (IRC 관리자로서)을 사용하여 강제로 연결을 끊고 연결 해제를 모방하는 서버를 차단할 수 있습니다.

+0

아 좋아요. 핑 또는 퐁 (ping/pong) 연결 테스트를 통해 연결이 여전히 '연결'상태인지 또는 그 작업을 위해 무엇을 할 수 있는지 추천 하시겠습니까? –

+0

서버는 정기적 인'PING '간격을 클라이언트에 보내야합니다. 회신을 보내지 않으면 서버에서 연결을 끊어야합니다. –