Java:如何在池中维护 SSLSocket session 以防止对每条消息进行新的握手

标签 java sockets session ssl handshake

我正在通过 SSLSocket 将 Java 服务器连接到 Android 应用程序。他们通过发送 JSON 对象进行通信。

我的服务器需要:

  1. 检查应用用户的登录信息
  2. 保持该连接以进行进一步的通信,以防止再次握手(以减少网络数据)并在进一步的交互中识别用户

我完成了第一点,连接已建立并且可以正常工作。但是我怎样才能实现第二个呢?

(让用户连接到的线程保持 Activity 状态直到他关闭套接字似乎是不合适的。我需要考虑数千个连接时间跨度从一分钟到一小时不等的连接。)

最佳答案

JSSE 已经在进行 SSL session 共享。别担心。只需根据需要创建 SSLSockets。如果可以,他们将重新加入现有 session 。重新加入 session 使用简短的握手。

您也不需要在服务器上进行特殊安排。另一方面,客户端的连接池从来没有坏处,但服务器不需要知道太多,除了循环接受来自一个连接的多个请求而不是在发送第一个响应后关闭它。

关于Java:如何在池中维护 SSLSocket session 以防止对每条消息进行新的握手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17550274/

相关文章:

php - 如何知道特定用户在特定 session 中访问了多少页

java - 如何在没有 DOM 的情况下在 java 中读取 XML?

java - ItemClickListener 调用方法后

java - 如何在 Spring 中加载系统属性以获取属性文件位置

java - WebTestClient 变异过滤器 java.lang.IllegalStateException : No "WebTestClient-Request-Id" header

java - 使用不同端口号创建套接字时地址已被使用

sockets - node.js 获取套接字的文件描述符?

java - 如何使用 Hibernate 更新我的应用程序 java 中数据库中的数据?

java - 维护 php 和 java 应用程序之间的 session /连接

json - 将 session 和 JSON 数据写入 http.ResponseWriter