Bir sunucu uygulamasına (veya tüm servletlerim) gelen tüm istekler için bir istek zaman aşımını nerede yapılandırabileceğimi anlamaya çalışıyorum. Düşündüğüm gibi, bir konteyner mülkü mü? Ayrıca, bu nasıl farklı tarayıcıları etkiler? Hepsi kapsayıcının dikte ettiği parametreye uyuyor mu? Ya da zaman aşımı süresi isteği kontrol edebileceğim bir şey değil ve her bir tarayıcı kendi başına buna karar veriyor? (Sadece oturum zaman aşımı hakkında konuşmuyorum)Java servlet konteynırında Http Request zaman aşımı parametresi nasıl belirtilir
cevap
İstemcideki zaman aşımı (yani, bir HTTP isteğine yanıt için ne kadar bekleyeceği) istemcide belirlenir. IE için bkz. this ve Firefox için bkz this.
Bu zaman aşımını sunucudan denetleyemezsiniz.
Her şeyden önce cevap için teşekkürler, bu program tarafından istemci tarafında (JavaScript ile) değiştirilemez değil mi? – Ittai
Ben inanmıyorum, hayır. –
İstemci zaman aşımını sunucudan denetleyemezsiniz. Ancak, her zaman müşteriye verileri geri gönderebilir ve uzun çalışma süreniz meşgul olur. Bu, istemcinin zaman aşımını önleyecektir ve kullanıcıya ilerlemeyi göstermek için kullanılabilir. Verileri yanıttan elde edilen OutputStream veya Writer'a yazın ve istemciye kısmi veri göndermek için floş çağırın. İstemci zaman aşımı kontrol edemez rağmen
xmlHttpRequest kullanılıyorsa bu kısmi veriler nasıl elde edilebilir? IE'den okudum, istek bitene kadar verilere erişemiyorsunuz – Ittai
Evet, ancak istemci bazı veriler geldiği sürece zaman aşımına uğramamalı. –
Haklısın ama biraz daha karmaşık çünkü Ben Comet'i uyguluyorum, bu yüzden 'Long Polling'i kullanacağım ve bu yüzden istekleri kaydetmek için daha uzun bir zaman aşımı gerekecek ya da David'in önerdiği şey olan Streaming'i kullanmam gerekecek. Neyse, teşekkürler. – Ittai
, sen
<Connector port="8080"
...
connectionTimeout ="5000"
disableUploadTimeout="false" />
Bu sunucu sadece 5 saniye bekleyin yapar, kendi bağlayıcı yapabilirsiniz, Tomcat, Örneğin :) sunucunun çok sabırsız yapabilir ve bağlantıyı kapatın. Tarayıcı bir bağlantı kapalı hatası alacaktır. Bunu istemcideki zaman aşımıyla aynı şekilde yapabilirsiniz.
Elbette, bu yalnızca zaman aşımı sunucudan kaynaklanıyorsa, tarayıcı ve sunucu arasında bağlantı sorunları değilse işe yarar.
"zaman aşımı" Tomcat Bağlayıcısı – robsf
içinde böyle bir parametre yoktur. Parametre adı Bağlayıcı etiketinin içindeki connectTimeout şudur:
- 1. MSUptek parametresi MSbuild'den nasıl belirtilir?
- 2. Ruby Net :: HTTP zaman aşımı
- 3. HTTP sürekli bekletme zaman aşımı
- 4. Java RMI - İstemci Zaman Aşımı
- 5. Gerektiğinde bir OperationContract parametresi nasıl belirtilir
- 6. Angular2 zaman aşımı http iletme isteğinde
- 7. Ruby: Net :: HTTP boşta kalma zaman aşımı?
- 8. NET HTTP İstek Zaman Aşımı sürekli akış sitesinde "durduruluyor" değil
- 9. üyelik zaman aşımı ve oturum zaman aşımı
- 10. HTTP ERROR 404 "adı" erişilemiyor (Servlet)
- 11. Zaman aşımı ayarlarıyla AWS ELB/EC2 HTTP 503 nasıl çözülür?
- 12. Bir nodejs sunucusunda HTTP Keep-Alive zaman aşımı nasıl ayarlanır
- 13. Java Servlet 404 hataları
- 14. Java kodundan nasıl servlet çağırılır
- 15. RPC zaman aşımı - Cassandra
- 16. java servlet başka bir java servlet işlevini kullanarak?
- 17. İmlecin zaman aşımı yok seçeneği nasıl belirlenir?
- 18. Zaman aşımı ve açık zaman aşımı arasındaki fark nedir?
- 19. java-servlet request.getParameterValues ()
- 20. HttpWebRequest zaman aşımı
- 21. Java ROMA çözümleyici varsayılan yuva zaman aşımı nasıl değiştirilir?
- 22. Java web uygulamalarında oturum zaman aşımı dinamik olarak nasıl ayarlanır?
- 23. fcntl.flock - zaman aşımı nasıl uygulanır?
- 24. AngularJS $ http hizmet istekleri için varsayılan zaman aşımı nedir?
- 25. phantomJS webpage zaman aşımı
- 26. Swift'de isteğe bağlı olarak bir variadic (ellipsis) parametresi nasıl belirtilir?
- 27. BackgroundWorker için zaman aşımı
- 28. PHP oturum zaman aşımı
- 29. Android Ekran Zaman aşımı
- 30. zaman aşımı stringwithcontentsofurl
Güzel soru. Son cevaba yorumunuzu okudum ve isteğin kapalı olmadığından emin olmak için hangi yaklaşımı seçtiniz diye merak ettim. Ben Comet'i kendim yapmaya çalışıyorum ve bunu nasıl doğru yapacağımı bilmiyorum. Bir çözüm önerebilir misiniz? Teşekkürler! – Dragos
@Dragos Sadece 29 saniye sonra (30 saniyeden az [IE sınırı]) kullanıcıya isteği geri döndüren basit bir Uzun yoklama mekanizmasının uygulanmasına son verdik. Şimdi aynı sorunla karşı karşıya olsaydım, websockets api'yi kullanmayı denemekti. – Ittai
Yani burada bir zaman aşımı için "zaman x" geçerli yanıtı temizler ve geçerli iş parçacığı öldürür, böylece tarayıcı yeterince hızlı veri almak öyle mi? FWIW tarayıcıları bu günlerde bir cevapta "çok dakika" beklemekte gibi görünüyor ... – rogerdpack