远程端点处于状态[TEXT_FULL_WRITING] - websocket

时间:2016-08-10 20:45:02

标签: java angularjs real-time java-websocket

我在客户端使用java web和angularJs创建了一个Web应用程序。服务器中发生了实时数据,我希望每当发生某些事情时都要更新客户端(浏览器)。

我目前正在使用Web套接字,我连接到服务器并使用'onMessage'方法接收数据。

以下是代码的一部分:

 var ws = $websocket('ws://' + location.host + '/' +    window.location.href.split('/')[3] + '/ws/rt');
  ws.onMessage(function (event) {
     // code that updates the page
  }):

在服务器中,我调用方法sendText将数据发送到客户端。

  Ws.ACTIVE_SESSIONS.entrySet().stream().forEach((session) -> {
            synchronized (LOCK) {
                session.getKey().getAsyncRemote().sendText(message);
            }
        }
    });

我发送的数据由数据和图像组成,因此数据量很大。

我的问题是服务器有时发送此异常而客户端没有更新:

java.lang.IllegalStateException: The remote endpoint
was in state [TEXT_FULL_WRITING] which is an invalid state for called 
method

我已经将我的OnMessage方法改为此,但它没有解决问题。

   @OnMessage
   public void onMessage(String message, Session session) {
      ...
   }

这样做的最佳方法是什么?避免这种异常?

0 个答案:

没有答案