Примечание. Я добавил этот вопрос в список рассылки пользователей grails
В эти выходные, используя этот фантастический блог в качестве руководства и плагина Cometd Grails,Я смог установить Cometd с моим существующим приложением Grails.Все отлично работает в FireFox и IE (хотите верьте, хотите нет), но у меня проблемы с Google Chrome.Из того, что я могу сказать, это происходит в строке comet.init () в моем javascript.
При использовании инструментов разработчика Chrome я вижу эту ошибку: Неверная схема URL для WebSocket http://localhost:8080/myapp/cometd/handshake
Я много занимался поиском и нашел сообщение о том, что в Chrome есть проблемы с WebSocket и localhost.Имея это знание, я отредактировал свой файл hosts так, чтобы он выглядел примерно так:
127.0.0.1 local.mydomain.com
URL-адрес для comet.init () затем становится http://local.mydomain.com:8080/myapp/cometd/handshake. Однако этоне исправил проблему, и у Chrome возникла та же проблема, но на этот раз казалось, что ей не нравится указанный порт.Я изменил свое локальное приложение, чтобы оно работало на порте 80, и тогда URL стал http://local.mydomain.com/myapp/cometd/handshake,, но все еще без кубиков.
Из того, что я могу сказать, cometd 2.0 эмулирует WebSocket, используя длинный опрос в браузерахкоторые изначально не поддерживают WebSocket (Firefox, IE и т. д.) и используют WebSocket в браузерах, которые его поддерживают (Chrome), поэтому я предполагаю, что именно отсюда моя проблема.
Поиск имееттакже заставляет меня поверить, что URL-адреса WebSocket должны начинаться с ws: // вместо http://,, так что, возможно, это моя проблема, но я не знаю, как настроить это с помощью tomcat / grails.
Кто-нибудь знает, какЯ могу исправить мою проблему?