Java Websocket失败。降级到Comet并重新发送
我正在使用Atmosphere framework 2.0.0.RC5来扩展具有websocket功能的web应用程序,遇到了一些奇怪的错误“websocket失败”。降级到Comet并重新发送,这是我无法逃避的 我使用websocket聊天示例作为起点: 该应用程序具有html+js客户端和java后端 后端Java Websocket失败。降级到Comet并重新发送,java,javascript,atmosphere,Java,Javascript,Atmosphere,我正在使用Atmosphere framework 2.0.0.RC5来扩展具有websocket功能的web应用程序,遇到了一些奇怪的错误“websocket失败”。降级到Comet并重新发送,这是我无法逃避的 我使用websocket聊天示例作为起点: 该应用程序具有html+js客户端和java后端 后端 启用NIO协议的Tomcat 7.0.42 带有Spring和Atmosphere servlet的Web模块v3.0 自定义CORS过滤器,允许使用大气集管 服务器会记录收到的每条消
- 启用NIO协议的Tomcat 7.0.42
- 带有Spring和Atmosphere servlet的Web模块v3.0
- 自定义CORS过滤器,允许使用大气集管
- 服务器会记录收到的每条消息
index.html
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="js/lib/jquery.atmosphere-2.0.2.js"></script>
<script type="text/javascript" src="js/aimpl.js"></script>
当我打开“index.html”时,我在控制台中看到一个错误(jquery.atmosphere-2.0.2.js第1097行),服务器日志中没有消息:
令人惊讶的是,当我直接在控制台中键入时,它会工作:
并由服务器记录,因此我假设服务器部分正常:
我猜这是一个javascript问题,但我不是100%确定。我玩了
connectTimeout
参数,但运气不好。你知道为什么它在脚本中不起作用吗 移动频道。将代码推到onOpen
功能内
错误消息是在建立连接之前尝试发送数据的结果。
传输:“websocket”,
您有2个,打字错误,抱歉,已更正。请尝试使用默认注释,看看是否有效?var request=new$.AtmosphereRequest();request.url=http://localhost:8181/services/echo';代码>等。。
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="js/lib/jquery.atmosphere-2.0.2.js"></script>
<script type="text/javascript" src="js/aimpl.js"></script>
$(function() {
"use strict";
var socket = $.atmosphere;
var request = {
url: 'http://localhost:8181/services/echo',
transport: "websocket",
contentType: "application/json",
//connectTimeout: '300000',
fallbackTransport: 'long-polling',
enableXDR: true,
logLevel: 'debug'
};
request.onMessage = function (response) {
console.log(response.responseBody)
};
request.onOpen = function(response) {
console.log('Atmosphere connected using ' + response.transport);
};
request.onReconnect = function (request, response) {
console.log("reconnecting...");
};
request.onError = function(response) {
console.log('an error has occured.');
};
var channel = socket.subscribe(request);
channel.push(JSON.stringify({ author: 'me', message: 'hello from websocket!' }));
});