无法与JavaEE Spring Server应用程序建立websocket连接

时间:2015-02-19 12:14:54

标签: java javascript spring spring-mvc websocket

我在Wildfly服务器上使用spring mvc 4.1.3构建了一个Web应用程序,该服务器实现了websocket服务器。大约几周前,一切都按预期工作。从那时起,我没有检查websocket连接。昨天我想检查应用程序的功能,突然间无法建立websocket连接。在我的案例中,客户端Chrome报告了以下错误消息

WebSocket connection to 'ws://127.0.0.1:8080/frontend/notificationws' failed: Error during WebSocket handshake: Unexpected response code: 200

Firefox报告了相同的错误消息,尽管服务器没有报告任何内容。我试图获得有关错误消息的任何进一步信息,但还没有运气。我观察到websocket服务器和客户端之间的消息交换与wireshark,但也没有运气。没有发现可疑的东西。

Websocket处理:

public class NotificationWs extends TextWebSocketHandler{
        @Override
        public void handleTextMessage(WebSocketSession session, TextMessage message) {
           logger.info("Payload: " + message.getPayload());
        }
}

自定义握手:

public class NotificationHandshakeInterceptor extends HttpSessionHandshakeInterceptor {
    @Override
    public boolean beforeHandshake(ServerHttpRequest request,
            ServerHttpResponse response, WebSocketHandler wsHandler,
            Map<String, Object> attributes) throws Exception {
        logger.info("Before Handshake");
        return super.beforeHandshake(request, response, wsHandler, attributes);
    }

    @Override
    public void afterHandshake(ServerHttpRequest request,
            ServerHttpResponse response, WebSocketHandler wsHandler,
            Exception ex) {
        logger.info("After Handshake");
        super.afterHandshake(request, response, wsHandler, ex);

    }
}

Servlet环境中的配置:

<bean id="notificationWs" class="com.supo.frontend.websocket.notification.NotificationWs" />
<websocket:handlers>
    <websocket:mapping path="/notificationws" handler="notificationWs"/>
    <websocket:handshake-interceptors>
        <bean class="com.supo.frontend.websocket.notification.NotificationHandshakeInterceptor"/>
    </websocket:handshake-interceptors>
</websocket:handlers>

javascript:

...
var uri = "ws://" + (document.location.hostname) + ":" + "8080" + "/frontend/notificationws";
websocket = new WebSocket(uri); 
...

我希望有足够的信息。我将不胜感激任何帮助。

更新:我查看了来自websocket onerror和onclose消息的事件消息。 onerror消息不包含任何有用的信息。 onclose消息抛出错误代码1006,这意味着&#34;连接异常关闭,例如,没有发送或接收关闭控制帧&#34;

0 个答案:

没有答案