Grails 如何配置cometd,使其与google chrome一起正常工作?

Grails 如何配置cometd,使其与google chrome一起正常工作?,grails,google-chrome,comet,websocket,cometd,Grails,Google Chrome,Comet,Websocket,Cometd,注意:我已经在grails用户邮件列表中交叉发布了这个问题 这个周末,我使用post作为指南和CometdGrails插件,能够用我现有的grails应用程序安装cometd。无论你信不信,FireFox和IE中的一切都非常完美,但我对谷歌Chrome有意见。从我的javascript中comet.init行上可以看出它正在发生 使用Chrome的开发工具,我看到了以下错误: WebSocket的错误url方案 我做了很多搜索,发现一篇帖子说Chrome与WebSocket和localhost有

注意:我已经在grails用户邮件列表中交叉发布了这个问题

这个周末,我使用post作为指南和CometdGrails插件,能够用我现有的grails应用程序安装cometd。无论你信不信,FireFox和IE中的一切都非常完美,但我对谷歌Chrome有意见。从我的javascript中comet.init行上可以看出它正在发生

使用Chrome的开发工具,我看到了以下错误: WebSocket的错误url方案

我做了很多搜索,发现一篇帖子说Chrome与WebSocket和localhost有问题。有了这些知识,我编辑了hosts文件,使其看起来像: 127.0.0.1 local.mydomain.com

comet.init的url随后变为。然而,这并没有纠正这个问题,Chrome也有同样的问题,但这次它看起来不喜欢指定端口。我将我的本地应用程序改为在端口80上运行,然后url变为,但仍然没有骰子

据我所知,Cometd2.0通过在不支持WebSocket的浏览器中使用长轮询来模拟WebSocket,比如Firefox、IE等,并在支持Chrome的浏览器中使用WebSocket,所以我猜这就是我的问题所在

搜索也让我相信WebSocket URL应该以ws://而不是http://开头,所以这可能是我的问题,但我不知道如何用tomcat/grails配置它


有人知道我如何纠正我的问题吗?

我想我已经找到了在javascript中使用这行代码的临时解决办法:cometd.unregisterTransport'websocket';但是我仍然很想知道将来如何在grails项目中使用Websocket协议

我想我已经在javascript中找到了一个临时解决方案:cometd.unregisterTransport'Websocket';但是我仍然很想知道将来如何在grails项目中使用Websocket协议

如果您使用grails和Cometd插件,请确保只从Javascript启用websockets。您还应该用Jetty 7插件替换Tomcat插件。请记住,如果使用长轮询,则配置url将以http://或https://开头。如果使用WebSocket,则必须以wss://开头

试试这个

var url = "";
if (Websocket === undefined) {
   url = "http://mydomain/myconext/cometd";
} else {
  url = "ws://mydomain/myconext/cometd";
} 

cometd.configure({
    url: url
});
我建议使用闪桥。这将比使用长轮询快得多。请参阅下面的链接。

如果您使用的是Grails和Comed插件,请确保只从Javascript中启用WebSocket。您还应该用Jetty 7插件替换Tomcat插件。请记住,如果使用长轮询,则配置url将以http://或https://开头。如果使用WebSocket,则必须以wss://开头

试试这个

var url = "";
if (Websocket === undefined) {
   url = "http://mydomain/myconext/cometd";
} else {
  url = "ws://mydomain/myconext/cometd";
} 

cometd.configure({
    url: url
});
我建议使用闪桥。这将比使用长轮询快得多。请参阅下面的链接。

我想我已经找到了在javascript中使用这行代码的临时解决办法:Comet.unregisterTransport'websocket';但我仍然很想知道将来如何在grails项目中使用Websocket协议;但我仍然很想知道将来如何在grails项目中使用Websocket协议。这对我来说同样适用于jQuery1.7.2和Cometd2.4.3取消Websocket传输的注册。感谢您为我提供了tipthat,jQuery1.7.2和Cometd2.4.3取消websocket传输的注册就成功了。谢谢你的提示