1

我正在尝试使用本网站的示例来学习如何在码头中使用 web-socket。我正在使用 Maven 来收集依赖项。

当我在 localhost:8082 中打开页面时,页面出现(它是一个聊天客户端),但是如果我尝试登录(这是首先使用 web-sockets 的时候),什么也没有发生。使用 Firebug,我确定我收到的错误消息如下:

"NetworkError: 400 Unsupported draft specification: 13 - http://localhost:8082/chat"

并且

Firefox can't establish a connection to the server at ws://localhost:8082/chat

我检查了 Web 套接字的 jar(版本 7.5.0.RC1),结果发现 WebSocketFactory 不支持 Sec-WebSocket-Draft 13。

我将 jar 更新到最新版本(8.0.3.v20111011),它支持版本 13:

    switch (draft)
    {
        case -1:
        case 0:
            extensions=Collections.emptyList();
            connection = new WebSocketConnectionD00(websocket, endp, _buffers, http.getTimeStamp(), _maxIdleTime, protocol);
            break;
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
        case 6: 
            extensions=Collections.emptyList();
            connection = new WebSocketConnectionD06(websocket, endp, _buffers, http.getTimeStamp(), _maxIdleTime, protocol);
            break;
        case 7:
        case 8:
            extensions= initExtensions(extensions_requested,8-WebSocketConnectionD08.OP_EXT_DATA, 16-WebSocketConnectionD08.OP_EXT_CTRL,3);
            connection = new WebSocketConnectionD08(websocket, endp, _buffers, http.getTimeStamp(), _maxIdleTime, protocol,extensions,draft);
            break;
        case 13:
            extensions= initExtensions(extensions_requested,8-WebSocketConnectionD13.OP_EXT_DATA, 16-WebSocketConnectionD13.OP_EXT_CTRL,3);
            connection = new WebSocketConnectionD13(websocket, endp, _buffers, http.getTimeStamp(), _maxIdleTime, protocol,extensions,draft);
            break;
        default:
            LOG.warn("Unsupported Websocket version: "+draft);
            response.setHeader("Sec-WebSocket-Version","0,6,8,13");
            throw new HttpException(400, "Unsupported draft specification: " + draft);
    }


...但我仍然得到同样的错误。最重要的是,我现在在代码中遇到错误,说构造函数 WebSocketClient() 已弃用,并且我使用的许多方法在 WebSocketClient 中不存在。

所以我想我的问题是:

1) 是什么导致它运行版本 13,我怎样才能让它使用版本 8?
2) 有没有其他人尝试使用本教程并遇到了麻烦?
3)有没有更简单的方法来学习 websockets(也许这个例子已经过时了)?

谢谢你的帮助。

4

0 回答 0