2017-10-16 252 views
0

服務gRPC客戶端時,我的服務器在客戶端斷開連接時分配我想要釋放它們的資源。gRPC Java:如何知道客戶端是否突然中斷(服務器端)?

我的問題是:如何正確處理客戶端突然斷開的情況?

+0

如果斷開是在向響應寫入數據時發生的,那麼Web容器將拋出一個特定的IOException,例如tomcat將拋出一個'org.apache.catalina.connector.ClientAbortException'。 – MartinByers

+0

@MartinByers:哦,我的壞!非常感謝你解決這個問題。 – anhldbk

回答

0

這通常不是問題,因爲服務器API基於RPC而不是傳輸。例如,您無法分配特定於連接的資源,因爲連接不會公開給您。

不建立連接資源決定是一個好主意,因爲當代理捲入時它會崩潰。例如,如果您的gRPC服務器前有TLS終止代理,則所有連接看起來都來自同一個「客戶端」,即使實際上它們不是。

注意:有些方法可以近似連接(通過查看客戶端的套接字地址),但是無法知道連接何時消失。地址純粹是信息性的。

相關問題