【发布时间】:2016-01-03 05:29:03
【问题描述】:
你好 @all 在 StackOverflow 上, 我目前正在开发一个服务器客户端应用程序,它通过 HTTPS 进行通信并执行一些任务,这些任务必须在服务器以及客户端上的单独线程中运行。
我不太关心客户端的线程效率。
正常的服务器任务如下所示:
- HTTPS 服务器收到登录请求。
- 打开一个长轮询线程进行通信。
- 服务器收到打开指令
- 服务器打开一个客户端套接字和一个从中读取的线程。
- 服务器收到关闭套接字的消息。
- Clientsocket 线程现在应该等待。
-另外:longpolling 线程应该 wait() 只要它没有从 socketthread 收到任何数据。
所以在大多数情况下,一个用户可以在服务器端拥有多个套接字,因此一个会话包括:
LongpollingThreadUSER套接字
我现在的问题是获得一些可扩展性的最佳实践是什么? 编写内部有一个while循环的永久线程是否更好。 还是编写在线程池上运行并在一个 I/O 周期后死掉的任务更好。
在网上找不到好的答案。 也许是具体的..
提前致谢 Bladerox
【问题讨论】:
-
您无法通过 HTTPS 执行您所描述的操作。它不是服务器端轮询协议。 TCP 服务器不打开客户端套接字。我建议你做更多的研究。
-
我认为我的概念不清楚。客户端将 https 请求发送到服务器,该服务器持有它们,直到它为客户端提供数据。它是 sed 的 reepsonse。这允许双向通信。服务器打开客户端套接字到不同的服务器。总而言之,它将是一个隧道应用程序......
-
所以解决你的问题以同意。
标签: java multithreading sockets server scalability