クライアントからのサブスクリプション リクエストの処理と、リクエストに基づく処理の実行に問題があります。サーバーでサブスクリプション要求が受信されたときに、メソッドを呼び出して何らかの処理を実行できるようにしたいと考えています。次の CometD のドキュメントを参照し、「サブスクリプション構成のサポート」で概説されている例を試してみましたが、うまくいきません。
http://www.cometd.org/documentation/2.x/cometd-java/server/services/annotated
Spring Bean を使用して既に Bayeux サーバーを作成しており、サーバー側で作成した他のチャネル名にデータを公開できます。ヘルプまたは追加情報。このトピックについていただければ幸いです。
私が使用しているコード例:
@Service("CometDSubscriptionListener")
public class CometDSubscriptionListener {
private final String channel = "/subscription";
private static final Logger logger = Logger.getLogger(CometDSubscriptionListener.class);
private Heartbeat heartbeat;
@Inject
private BayeuxServer bayeuxserver;
@Session
private ServerSession sender;
public CometDSubscriptionListener(BayeuxServer bayeuxserver){
logger.info("CometDSubscriptionListener constructor called");
}
@Subscription(channel)
public void processClientRequest(Message message)
{
logger.info("Received request from client for channel " + channel);
PublishData();
}