每当我试图在Spring4&amp ;;中尝试将Binary发送到WebSocket服务器端点时,会话就会关闭。 Tomcat8

时间:2015-09-29 16:35:03

标签: java spring websocket tomcat8 spring-websocket

我必须使用webapps(A和B),它们都是使用Spring MVC在Tomcat8中部署的B / S.当然,我在Java7中开发这些服务器端。

我尝试通过WebSocket从A服务器端向B的服务器端发送一些数据。这些数据约为10k~200k,每2秒发送一次。在这种情况下,我认为WebSocket可能比RPC / WebService更好。

问题是: 当我使用session.sendText发送短信时,一切都很好。但是当我使用session.sendBinary发送数据时,我发现会话总是被关闭。 B服务器端的弹出日志(B是websocket服务器端点,谁接收数据)是这样的:

00:29:29,191 DEBUG OpenEntityManagerInViewFilter:160 - Opening JPA EntityManager in OpenEntityManagerInViewFilter
00:29:29,191 DEBUG TransactionSynchronizationManager:193 - Bound value [org.springframework.orm.jpa.EntityManagerHolder@107c53da] for key [org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean@25c9b5b9] to thread [http-nio-8081-exec-1]
00:29:29,191 DEBUG TransactionSynchronizationManager:243 - Removed value [org.springframework.orm.jpa.EntityManagerHolder@107c53da] for key [org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean@25c9b5b9] from thread [http-nio-8081-exec-1]
00:29:29,192 DEBUG OpenEntityManagerInViewFilter:185 - Closing JPA EntityManager in OpenEntityManagerInViewFilter
00:29:29,192 DEBUG EntityManagerFactoryUtils:432 - Closing JPA EntityManager

每次A尝试发送数据时,B的控制台都会重复打印这5行日志。我完全不知道应该在哪里检查...

如果我能得到你的帮助,那将是超级优秀的。

-UPDATE -

事实上,我没有使用websocket的muche配置。 在B方面,作为websocket服务器,我在类上有注释,我希望接收这样的数据:

@ServerEndpoint(value = "/report")
public class ReportsWebSocketReceiver {
...
}

在A侧,我使用ws://[IP:PORT]/[webappName]/report连接并发送消息。

这在连接和发送文本消息时起作用,在sendBinary消息时不起作用。

顺便说一句,如果我在Tomcat8中部署没有spring的接收器类,包括sendText和sendBinary,它可以工作。那么我是否需要在web.xml或spring.xml中配置更多?

0 个答案:

没有答案