2012-02-04 4 views
0

Firefox 10이 내 핸드 셰이크를 수락하지 않습니다. Offcorse 이것은 Mozilla이고 WebSocket의 MozWebSocket 인스턴스를 사용합니다. 그것은 완벽한 크롬 16에서 작동MozWebSocket이 핸드 셰이크에 응답하지 않습니다.

   $reply = "HTTP/1.1 101 Switching Protocols\r\n" . 
         "Upgrade: websocket\r\n" . 
         "Connection: Upgrade\r\n" . 
         "Sec-WebSocket-Accept: {$accept}\r\n\r\n"; 

하지만, 서버가 악수를 수행보다라고해도 파이어 폭스에 그냥 뭔가를 기다리고 : 내 서버의 응답 헤더입니다. 그런 다음 몇 시간 후 클라이언트는 상태 3 (연결 해제)으로 이동합니다.

아이디어가 있으십니까?

답변

0

나는 그것이 내 Firefox (?) 일 수 있다는 것을 깨달았다. 나는 FF를 제거하고 전체 개인 데이터를 삭제했다. (심각하게 모든 것!) 그리고 FF로 한번 더 설치했다 ... 그리고 같은 문제! 그래서 그것이 내 Windows 문제 또는 sth인지 모르겠다 ... 신경 쓰지 마 ... 모든 것에 대해 감사드립니다.

3

오프닝 헤더를 올바르게 읽고 완전히 읽었습니까? Chrome과 FireFox 간의 websocket 핸드 셰이크 처리의 주요 차이점은 FireFox가 캐싱, 인코딩, 사용자 에이전트 등을 사용하여 websocket 핸드 셰이크 요청을보다 완벽하게 채우는 것입니다. 특히 RFC에 따라 "Connection"헤더를 두 번 확인하십시오. 여러 값과 파이어 폭스에 있지만 크롬에 않습니다. FireFox 연결 헤더는 일반적으로 "연결 : 연결 유지, 업그레이드"와 같습니다. 이 헤더가 여러 값을 가질 것으로 예상하지 않는 핸드 셰이크 파서를 이동할 수 있습니다.

그렇지 않으면 $ accept 값이 올바르게 계산되고 있다고 가정 할 때 핸드 셰이크 응답이 나에게 맞는 것처럼 보입니다. 크롬이이를 받아들이는 것처럼 들립니다.

+0

예, firefox가 "Connection : keep-alive, Upgrade"를 보내면 어떻게해야합니까? – marverix

관련 문제