簡體   English   中英

gRPC Java:如何知道客戶端是否突然斷開連接(服務器端)?

[英]gRPC Java: How to know if a client disconnects abruptly (server side)?

為gRPC客戶端提供服務時,我的服務器分配的資源要在客戶端斷開連接時釋放。

我的問題是:當客戶端突然斷開連接時,如何正確處理這種情況?

這通常不是問題,因為Server API基於RPC而不是傳輸。 例如,您不能分配特定於連接的資源,因為該連接不會向您公開。

最好不要將資源決策建立在連接上,因為當涉及代理時它會崩潰。 例如,如果您在gRPC服務器之前有一個TLS終止代理,則所有連接似乎都來自同一“客戶端”,即使實際上並非如此。

注意:有多種方法可以近似連接(通過查看客戶端的套接字地址),但是無法知道何時斷開連接。 該地址僅供參考。

構建服務器時,請添加具有以下方法的ServerTransportFilter:transportTerminated(Attributes transportAttrs)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM