Java Tomcat websocket客户端框架

Java Tomcat websocket客户端框架,java,tomcat,jakarta-ee,websocket,tomcat7,Java,Tomcat,Jakarta Ee,Websocket,Tomcat7,我有以下代码作为websocket的clientendpoint在java中执行 protected void dequeue() throws InterruptedException, IOException { ByteBuffer bbuf; System.out.println("start"); while((bbuf = messageQueue.take()).get(0) != 0) {

我有以下代码作为websocket的clientendpoint在java中执行

   protected void dequeue() throws InterruptedException, IOException
    {
        ByteBuffer bbuf;
        System.out.println("start");
        while((bbuf = messageQueue.take()).get(0) != 0)
        {
            bbuf.position(bbuf.limit());
            if(bbuf.get(0)== 0)
                System.out.println("here");
            bbuf.flip();
            for(Session session : sessionList)
            {
                //Thread.sleep(10000);
                if(!session.isOpen())
                    break;
                session.getBasicRemote().sendBinary(bbuf);
            }
        }
        System.out.println("end");
    }
当注释掉的Thread.sleep放回代码中时,代码工作正常。但是,当代码中不包含Thread.sleep时,对websocket的写入有时会起作用,而在写入第一条消息并给出以下原因后,会调用@onClose

CloseReason:代码[1002],原因[客户端帧将此端点不支持的保留位设置为[7]


其中[7]有时会是1,2,等等。我还没有找到任何真正的原因来解释为什么会发生这种情况,有没有人对正在发生的事情有任何见解?值得注意的是,我使用tomcat 7.0.53托管websocket的服务器端,并使用HTTPS而不是HTTP。

这是由于tomcat中的以下错误造成的,更新到apache tomcat 7.0.57将解决此问题。更新到高于7.0.53的apache tomcat版本可能会解决此问题,但尚未测试