【发布时间】:2016-03-30 10:14:37
【问题描述】:
我在使用 spring websockets 时遇到以下错误:
用例:在我们的服务器端代码中,我们具有在数据库中搜索值的功能..如果数据库中不存在这些值..它将命中一个 servlet 并获取数据..第二部分即命中servlet和获取数据是异步调用。
所以对于一个请求,我们必须在数据库中搜索多个内容..
示例:在请求中我们得到了一些参数通道:1 此通道映射到多个 id,例如 1 映射到 1,2,3,4,5
在 websocket 中,一旦请求到达服务器,我将提取通道并获取所有 id 的映射并在 id 上运行循环,如下所示:
for(int i=0;i<ids.length;i++)
{
SomeObject databaseRespObj=callToDatabase(i); //SomeObject contains two fields value exists and string values
if(!databaseRespObj.valuesExists)
{
AsynchronouscallToServelt(i);
//once response received it will send message immediately using session
}
}
在执行上述服务器端代码时,有时只有我面临以下错误。
java.lang.IllegalStateException: Blocking message pending 10000 for BLOCKING
at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.lockMsg(WebSocketRemoteEndpoint.java:130) ~[websocket-common-9.3.8.v20160314.jar:9.3.8.v20160314]
at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.sendString(WebSocketRemoteEndpoint.java:379) ~[websocket-common-9.3.8.v20160314.jar:9.3.8.v20160314]
at org.springframework.web.socket.adapter.jetty.JettyWebSocketSession.sendTextMessage(JettyWebSocketSession.java:188) ~[spring-websocket-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.web.socket.adapter.AbstractWebSocketSession.sendMessage(AbstractWebSocketSession.java:105) ~[spring-websocket-4.2.4.RELEASE.jar:4.2.4.RELEASE]
抱歉,如果上述问题的框架不清楚。spring 是否支持像普通 javax websocket 那样发送异步消息 Session.getAsyncRemote().sendText(String text)
spring中使用websocket session发送异步消息的配置是什么
【问题讨论】:
标签: websocket spring-websocket asynchttpclient java-websocket