我在GRPC客戶端上使用GRPC版本:1.1.2 & JDK版本:1.8在連接到NodeJS服務器的GRPC客戶端上。 Java客戶端能夠正常連接,但當我斷開與客戶端的連接時,我總是在服務器端看到下面的異常。使用GRPC時SSL解密錯誤
異常(僅在服務器上)
E0410 15:03:19.674531000 140735121084416 ssl_transport_security.c:439] SSL_read returned 0 unexpectedly.
E0410 15:03:19.674829000 140735121084416 secure_endpoint.c:185] Decryption error: TSI_INTERNAL_ERROR
我關閉通過以下調用的GRPC的Java連接:
channel.shutdown().awaitTermination(5, TimeUnit.SECONDS); //channel is ManagedChannel
我應該做這個之前被清理的任何其他資源打電話還是應該使用備用機制徹底斷開與服務器的連接?
編輯 我注意到,我得到同樣的錯誤,當我嘗試以下方法,以及:
channel.shutdown();
我在Mac上使用OpenSSL - 我記得更改默認的Mac版(OpenSSL的0.9.8zh 2016年1月14日)。
在GRPC
result = tsi_frame_protector_unprotect(ep->protector, message_bytes,
&processed_message_size, cur,
&unprotected_buffer_size_written);
gpr_mu_unlock(&ep->protector_mu);
if (result != TSI_OK) {
gpr_log(GPR_ERROR, "Decryption error: %s",
tsi_result_to_string(result));
break;
}
將嘗試 - 感謝 –
感謝 - 有來自客戶端的整理過的雙向流的清潔方法時,客戶需要斷開連接? –
或者是從客戶端關閉頻道的唯一選項,並且服務器必須檢測客戶端斷開連接並關閉流? –