【发布时间】:2016-02-14 17:32:34
【问题描述】:
我正在使用 ec2,使用 socksJS 的 spring websocket 在本地运行良好。 我已经尝试过以下事情。 1. 我没有任何阻塞 TCP 的负载均衡器。请求直接去ec2服务器 2.使用真实IP代替ec2服务器名称。
虽然服务器在 chrome 控制台中出现以下问题,但应用服务器日志中没有错误
WebSocket connection to 'ws://ec2-XX-X-XXX-XXX.compute-1.amazonaws.com/ws/963/kaidmvd9/websocket' failed: Error during WebSocket handshake: Unexpected response code: 400
Javascript
app.service('SocketService', function(httpService,$rootScope,SoundService) {
this.registerMe = function(callback){
$rootScope.socket = new SockJS("/ws");
$rootScope.stompClient = Stomp.over($rootScope.socket);
$rootScope.stompClient.connect('guest', 'guest', function(frame1) {
$rootScope.stompClient.subscribe('/user/'+$rootScope.loggedInUser.username+'/reply', function(frame2) {
var msg = JSON.parse(frame2.body);
console.log(msg);
});
},
function(error) {
console.log(error.headers.message);
}
);});
春天的xml
<websocket:message-broker application-destination-prefix="/app" >
<websocket:stomp-endpoint path="/ws">
<websocket:sockjs />
</websocket:stomp-endpoint>
<websocket:simple-broker prefix="/topic,/user" />
</websocket:message-broker>
【问题讨论】:
-
您是从同一个
ec2-XX-X-XXX-XXX.compute-1.amazonaws.com域加载网页吗?如果不是,这可能是 CORS 问题 docs.spring.io/spring-framework/docs/current/… -
是的,来自同一个域..
标签: spring amazon-web-services websocket spring-websocket sockjs