为每个连接的客户端分隔websocket

时间:2014-07-02 20:06:50

标签: java javascript networking websocket

我计划开发使用websocket连接到Java服务器的JavaScript客户端应用程序。 Server应该处理许多连接的客户端。 经过一番阅读后,我发现了websocket单线程。如果我想运行可以阻止所有内容的数据库查询,那就不好了。

我在想的是为每个JavaScript客户端打开分离的websocket。一个套接字正在侦听新连接,并且在建立连接时会创建一些唯一ID。之后打开新的websocket并使用侦听器套接字将id发送到客户端。当客户端收到id关闭第一个套接字并连接到新套接字。

你怎么看,这是好的解决方案吗?也许我错过了什么?

3 个答案:

答案 0 :(得分:0)

Spring 4为您提供了使用线程池的机会。文档在这里: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/websocket.html

答案 1 :(得分:0)

您可以使用Akka来管理所有并发和线程管理。或者你可以使用已经在Akka上构建的Play Framework并且非常好地支持WebSocket。使用Play,您可以在服务器端选择Java和Scala。

答案 2 :(得分:-2)

您应该在服务器上使用NodeJS来处理套接字i / o。您可以通过javascript客户端应用程序连接到它,然后调用基于Java的API。 NodeJS是非阻塞(异步),您应该能够利用现有的Javascripting技能快速构建Node应用程序。您甚至可以使用完整的MEAN堆栈来构建客户端/服务器应用程序。 http://meanjs.org/http://mean.io/#!/是两个受欢迎的起点。