我很努力去理解一種有效的方式來通知客戶而不浪費線程。當客戶端連接到CometD servlet時,我想要開始監視客戶端的服務器端事件,並在客戶端可用時將其發佈到客戶端。這應該在線程池或不使用servlet線程的東西中完成。我看到的所有示例都是針對客戶端發起的事件以及服務器上的偵聽器。我需要相反的...我是否將Client/ServerSession對象交給我自己的機器?這似乎是一種常見模式,但我找不到任何例子。用於通知客戶端服務器端事件的java cometd模式是什麼?
2
A
回答
0
看看Servlet 3.0異步API。特別是,ServletRequest.startAsync()
會返回一個AsyncContext
對象,你可以「交給你自己的機器」,然後從你的servlet doGet()/ doPost()/ etc返回。而不終止連接。
然後有各種模式發送數據回客戶端。我相信你的「自己的機器」只能從AsyncContext
獲取ServletResponse
並寫入它。另一種方法是在AsyncContext
上調用dispatch()
,這將導致您的doGet()/ doPost()方法再次被調用。
+0
謝謝。我正在嘗試使用bayeux/cometd,並將其中的一些內容抽象出來,所以如何處理它並不那麼明顯。我最終使用了我自己的線程池,並使用Bayeux提供的subscribe/unsubscribe回調函數來安排我的池中的作業。 –
相關問題
- 1. Cometd Java客戶端不會發布到Cometd服務器
- 2. CometD 3.1.2客戶端是否與2.9.1 CometD服務器兼容?
- 3. 通知客戶端從服務器
- 4. 服務器到客戶端通知/ Web服務(jax-ws)到客戶端通信
- 5. 通知,服務器到客戶端
- 6. 服務器客戶端通信java
- 7. 客戶端mod_perl服務器事件
- 8. 註釋Cometd Java客戶端
- 9. 如何從CometD客戶端向CometD服務器發送參數
- 10. Grails:服務器到客戶端通知
- 11. 的Java通信客戶端/服務器
- 12. Java:服務器/客戶端 - >客戶端/客戶端
- 13. 從服務器發送通知到客戶端服務器上的事件
- 14. Java客戶端服務器
- 15. 服務器客戶端java
- 16. 客戶端服務器通信受阻於客戶端
- 17. 用於Java客戶端的WCF服務
- 18. 客戶端服務器通信java
- 19. 用於客戶端/服務器通信的Java標準
- 20. 使用什麼服務器端事件或推送通知?
- 21. 典型的服務器到客戶端通信模式是什麼?
- 22. Java客戶端服務器模型
- 23. 客戶端/服務器模型Java
- 24. memcached的客戶端 - 服務器模型的好處是什麼?
- 25. 用Python進行服務器端客戶端推送通知
- 26. 通過Web服務通知服務器到客戶端
- 27. 廣播事件 - 適用於服務器端,但不適用於客戶端
- 28. 設計模式:客戶端 - 服務器
- 29. 客戶端與服務器端模板
- 30. 什麼是客戶端和服務器端DataTable處理?
如果您使用的是weblogic,則內置了所有內容:http://download.oracle.com/docs/cd/E15051_01/wls/docs103/webapp/pubsub.html – RealHowTo