Windows에서 nodejs + socket.io의 최신 버전을 사용하는 간단한 응용 프로그램을 개발 중입니다. 소켓이 클라이언트 측에 생성받을 때 문제가 발생했지만, 콘솔에 다음과 같은 출력 socket.emit 결과는 (구글 크롬을 사용) : 나는 로컬 호스트에서 테스트하고 있기 때문에 매우 이상하다socket.io 클라이언트 'emit'이 크롬 콘솔의 이상한 오류를 표시합니다.
GET http://0.0.34.184:8888/socket.io/1/?t=1321385855665&jsonp=0
: 8888이므로 적어도 127.0.0.1이어야하며 0.0.34.184가 아니어야합니다.
<script type="text/javascript" src="socket.io/socket.io.js"></script>
을 그럼 난 다음 코드를 사용하여 연결 :
socket = io.connect('localhost:8888');
socket.on("my_event", receiveNetEvent);
console.log('LOG: sio init complete, socket=' + socket);
로그 상태 소켓 = [개체 개체를 다음과 같이 페이지의 socket.io 클라이언트는 태그에 서버에서 요청 ] null 또는 undefined가 아니므로 모든 것이 작동해야합니다.
itseld은 다음 기능을 수행한다 전송 :
function sendRequest(request){
socket.emit('request', request);
}
요청 객체 함수에 전달이 형성되고, 이렇게 전달 :
var initRequest = {};
initRequest.subject = 'weather';
initRequest.key = 'initial';
sendRequest(initRequest);
하고 유효한 JSON 객체 인 다시 console.log()
에 따르면.
이 모든 일로 인해 일어날 수있는 모든 이유에 대해 전혀 알지 못합니다.
나는 그것을 믿을 수 없다. 나는 버그를 잡으려고 거의 하루를 보냈다! 그리고 'localhost : 8888'주소 앞에 'http : //'부분을 넣지 않았 음이 밝혀졌습니다 !!! 그래서 거기에 나타나는 0은 엉망진창에서 나온 것입니다 ... – noncom
아직도 socket.io가 이것에 대해 무지한 이유가 있습니다. 반면에 novadays가 일반적으로 시행하지 않는 http 일을 잊어 버리는 것은 쉬운 일입니다. 클라이언트 소켓은 http가 아닌 다른 곳에서 열 수 없으므로 적어도 경고를 던질 수 있으며 URL에서 헤더가 누락 되었음이 분명합니다. – noncom