2015-01-21 2 views
0

포트 3000에서 수신 대기하는 파이썬 스크립트를 실행하는 홈 서버로 웹 사이트 연결을 만들었습니다.로드 할 때 클라이언트가 연결 한 서버 로그로 서버에 연결할 수 있습니다. 나의 페이지. 그러나 서버에 연결할 때마다 서버가 자동으로 내 서버 receivedMessage() 함수를 실행하고 연결에 관한 가비지를 출력합니다. 서버 로그는 다음과 같습니다 : 코드의서버에 쓰레기를 보내는 웹 소켓

A new client has connected 
Message Received: GET/HTTP/1.1 
Host: [Insert host name and port here] 
Connection: Upgrade 
Pragma: no-cache 
Cache-Control: no-cache 
Upgrade: websocket 
Origin: null 
Sec-WebSocket-Version: 13 
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36 
Accept-Encoding: gzip, deflate, sdch 
Accept-Language: en-US,en;q=0.8 
Sec-WebSocket-Key: 3DUmKD70X9p19IpLPjS2jg== 
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits 

코드 조각은 서버에 연결하는 것은 간단하다 : 위의 스크립트가 실행될 때

var theSocket = new WebSocket("ws://[insert host name]:3000"); 

    theSocket.onopen = function() { 
     // Web Socket is connected, send data using send() 
     theSocket.send("blah"); 
     alert("SENT"); 
    }; 

는 또한 경고 상자가 결코까지 보여줍니다. 모든 연결 세부 사항이 인쇄되는 원인은 무엇이며 어떻게 간단한 문자열을 보내고 경고 상자를 성공적으로 팝업 할 수 있습니까?

답변

1

WebSocket이 절대로 CONNECTING에서 OPEN으로 전환되어 절대로 onopen 함수를 호출하지 않을 가능성이 있습니다. 파이썬 스크립트가 서버 측의 Web Socket Handshake을 통과하는지 확인해야합니다.

+0

내 자바 스크립트 콘솔이 "웹 소켓 연결을 'ws : // {호스트 이름} : 3000 /'에 인쇄하지 못했습니다. WebSocket 열기 핸드 셰이크가 취소되었습니다. '라는 메시지가 나타납니다. – Aimee

+0

그냥 이해하려고합니다. 여전히 연결이 성공적이지 않은 경우에도 WS 서버가 가비지를 인쇄하는 이유에 대해 대답하지 않습니다. 일부 기본 WS 동작입니까? – goldenmean

+0

올바른 부분, 첫 번째 섹션에서 링크 된 기사를 보면 websocket 클라이언트는 Aimee가 자신의 서버 프린트에서 보는 "표준"http 요청을 보낼 것입니다. 파이썬 서버 코드가 없으면 그것에 대해 더 많이 말하기가 어렵습니다. –

관련 문제