2015-10-06 76 views
-1

您好@all在StackOverflow, 我目前正在开发一个服务器客户端应用程序,它通过HTTPS进行通信,并执行一些必须在服务器上的独立线程和客户端上运行的任务。Java线程会话的最佳实践

我不是真正关心客户端上线效率的演唱会。

正常的服务器任务是这样的:

  1. HTTPS服务器临危登录eQUEST的。
  2. 打开了一个longpolling线程进行通信。
  3. 服务器临危说明打开
  4. 服务器打开一个客户端套接字和线程从中读取数据。
  5. 服务器收到消息关闭套接字。
  6. Clientsocket线程现在应该等待。

- 内容:longpolling线程应该等待(),只要它没有收到socketthread的任何数据。

因此,在大多数情况下,一个用户可以ahve在服务器端的多个插座这样一个会话包括:

LongpollingThread < 1 --- 1>用户< 1 --- 0..5>插座

我现在的问题是如何获得潜在的可伸缩性的最佳实践? 编写内部有while循环的永久线程会更好吗? 或者编写一个在线程池上运行并在一个I/O周期后死亡的任务会更好。

不容网上找到一个很好的答案。 也许是具体的..提前 Bladerox

+0

你不能做什么你描述过HTTPS。它不是服务器端轮询协议。而TCP服务器不会打开客户端套接字。我建议你做更多的研究。 – EJP

+0

我认为我的概念不清楚。 客户端发送https请求到持有它们的服务器,直到它拥有客户端的数据。它是sed reepsonse。这允许双向通信。 服务器将客户端套接字打开到不同的服务器。 总而言之,这将是一个隧道应用程序.... – Bladerox

+0

因此,解决您的问题,以达成一致。 – EJP

回答

0

感谢我认为你应该使用某种类型的servlet引擎或应用服务器。那里会解决很多你的问题。例如,使用异步servlet处理将帮助您在服务器组件中。

在客户端站点:你看看的java.nio中的多播的东西呢?