[英]How to keep the server socket alive after client abruptly disconnects?
[英]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.