2014-03-27 3 views
1

IE 8의 노드 서버에 WinXP로 연결할 때 connect 이벤트가 여러 번 발생합니다. Windows 7에서 WinXP 또는 IE 11에서 Chrome을 동일하게 실행하면 connect이 예상대로 한 번만 실행됩니다.WinXP의 IE 8에서 Socket.io on connect이 여러 번 발생합니다.

클라이언트 코드 :

if (that.debug && window.console) console.log('connecting to '+server_addr); 
var socket = that.socket = io.connect(server_addr,{ 
    'reconnect' : false, 
    'connect timeout' : 1000, 
    'max reconnection attempts': 3 
}); 

socket.on('connect', function(){ 
    if (that.debug && window.console) console.log('Socket.on event: connect'); 
    cb.call(that,socket); 
}); 

출력 IE 8 :

LOG: connecting to my_server.com 
LOG: Socket.on event: connect 
LOG: Socket.on event: connect 
LOG: Socket.on event: connect 
LOG: Socket.on event: connect 
LOG: Socket.on event: connect 
LOG: Socket.on event: connect 
LOG: Socket.on event: connect 
LOG: Socket.on event: connect 

누구든지이 문제를 경험? 어떤 생각을 해결/디버깅하는 방법?

+1

청취자를 복제 할 수 있습니다. 디자인에 맞는 경우, 각각을 보내기 전에'socket.removeAllListeners()'를 호출 해보십시오. 하지만 문제는이 코드 안에 있다고 생각하지 않습니다. 더 이상 가지고 있니? – Houseman

+0

'연결 중'오류는 한 번만 표시되며 코드를 연결하거나 콘솔에 쓰지 않고 더 많은 청취자를 추가하는 코드가 없으므로 필자는 실제로 그렇게 생각하지 않습니다. 다른 플랫폼/브라우저에서 '연결'은 한 번만 실행됩니다. 그럼에도 불구하고 나는 모든 청취자를 제거하려고 노력할 것입니다. – Kuf

+0

가능한 [Socket.IO 및 IE8의 복제본 - jsonp- 폴링 연결이 항상 실패 함] (http://stackoverflow.com/questions/18637953/socket-io-and-ie8-jsonp-polling-connections-always-failing) –

답변

0

일부 컴퓨터에서이 문제가 계속 발생했지만 설치 한 WiFi 라우터와 관련이 있다고 생각됩니다.

우리는 마침내 그것을 socket.io 버전 1.0로 업그레이드하면 해결되었다 :

if (that.debug && window.console) console.log('connecting to '+server_addr); 
var socket = io.connect(server_addr); 
socket.on('connect', function(){ 
    if (that.debug && window.console) console.log('Socket.on event: connect'); 
    cb.call(that,socket); 
}); 

는 비슷한 문제가 다른 사람을 도움이되기를 바랍니다.