WebSocket 失败:WebSocket 握手期间出错:意外响应代码:400



我正在使用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

爪哇语

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>

通过您的 T-Hub 帖子来到这里,没有足够的声誉来添加评论,否则会这样做。这是您可以尝试的;使用 EC2 的私有 IP(使用 ifconfig 查找(来托管 WebSocket 终端节点。

<websocket:message-broker application-destination-prefix="/app">
    <websocket:stomp-endpoint path="/ws">
      <websocket:sockjs/>
    </websocket:stomp-endpoint>
     <websocket:stomp-broker-relay prefix="/topic,/user"
           relay-host="your-ec2-private-ip-addr" relay-port="80" heartbeat-send-interval="20000" heartbeat-receive-interval="20000"/>
</websocket:message-broker>

从以下方面获得帮助:Java Spring STOMP:设置代理 IP

相关内容

  • 没有找到相关文章

最新更新