簡體   English   中英

通知客戶端服務器端事件的java cometd模式是什么?

[英]What is the java cometd pattern for notifying clients of server-side events?

我正在努力了解一種有效的方式來通知客戶而不浪費線程。 當客戶端連接到CometD servlet時,我想開始監視客戶端的服務器端事件,並在它們可用時將其發布到客戶端。 這應該在線程池或不使用servlet線程的線程中完成。 我看到的所有示例都是針對客戶端起源的事件以及服務器上的偵聽器的。 我需要反過來...我是否將Client / ServerSession對象交給我自己的機器? 看來這將是一種常見的模式,但是我找不到任何示例。

查看Servlet 3.0異步API。 特別是, ServletRequest.startAsync()將向您返回一個AsyncContext對象,您可以將其“ AsyncContext給您自己的機器”,然后從servlet doGet()/ doPost()/ etc返回。 而不終止連接。

然后有各種模式可用於將數據發送回客戶端。 我相信您的“自己的機器”可以從AsyncContext獲取ServletResponse並對其進行寫入。 另一種方法是在AsyncContext上調用dispatch() ,這將導致再次調用doGet()/ doPost()方法。

暫無
暫無

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

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