참고 : 나는 교차 게시 Grails의 사용자 메일 링리스트에서이 질문을했습니다Google 크롬에서 제대로 작동하도록 cometd를 구성하려면 어떻게해야합니까?
플러그인 this fantastic blog 가이드로 게시하고 cometd Grails는을, 내 기존 Grails를 설치 cometd을 얻을 수 있었다 사용이 주말 앱. FireFox와 IE에서 완벽하게 작동하지만 (믿거 나 말거나) Chrome에 문제가 있습니다. 내가 comet.init() 라인에서 일어나는 일을 자바 스크립트에서 알 수 있습니다. 나는 검색을 많이 해봤 웹 소켓 http://localhost:8080/myapp/cometd/handshake
에 대한 잘못된 URL 방식을, 그리고 크롬 웹 소켓과 로컬 호스트에 문제가 있다는 내용의 게시물을 발견 : 크롬의 개발자 도구를 사용하여
는,이 오류를보고 있어요.
127.0.0.1 local.mydomain.com
comet.init의 URL() 다음 http://local.mydomain.com:8080/myapp/cometd/handshake가된다 : 지식과 함께, 내가 좋아하는 뭔가를 찾기 위해 내 호스트 파일을 편집했다. 그러나이 방법으로 문제가 해결되지 않았고 Chrome에서 동일한 문제가 발생했지만 이번에는 포트가 지정되지 않았던 것처럼 보였습니다. 포트 80에서 실행되도록 로컬 앱을 변경했는데 URL은 http://local.mydomain.com/myapp/cometd/handshake이되었지만 여전히 주사위가 없었습니다.
cometd 2.0은 WebSocket을 기본적으로 지원하지 않는 브라우저 (Firefox, IE 등)에서 긴 폴링을 사용하여 WebSocket을 에뮬레이트하고이를 지원하는 브라우저에서 WebSocket을 사용합니다 (Chrome). 그래서 나는 그것이 내 문제가 어디에서 오는지를 추측하고 있습니다.
검색을 통해 WebSocket URL이 http : // 대신 http : //로 시작해야한다고 생각합니다. 아마도 내 문제이기는하지만 tomcat/grails로 구성하는 방법을 모르겠습니다.
내 문제를 해결하는 방법을 아는 사람이 있습니까?
나는 내 자바 스크립트 코드 줄을 사용하여 임시 해결 찾은 것 같아 : cometd.unregisterTransport ('웹 소켓을'); 그러나 앞으로도 grails 프로젝트에서 Websocket 프로토콜을 어떻게 사용할 수 있는지 알고 싶습니다. – aasukisuki