CometD:广播前处理广播消息

时间:2016-04-09 15:35:02

标签: java jetty cometd

我有一个在码头内运行的Cometd应用程序。我想从客户端获取传入的广播,然后进行一些处理(涉及与数据库交互),然后在没有遇到错误的情况下通过向所有订阅者广播完成。

我最初的想法是使用扩展程序执行此操作,但是有更合适的方法吗?

以下是基于@sbordet回答的修改后的尝试:

@Inject
private BayeuxServer bayeux;
@Session
private ServerSession serverSession;

    @Listener("/service/*")
    public void handle(ServerSession remote, ServerMessage message) {
        System.out.println("Message received on service: " + message);

        String broadcastChannel = message.getChannel().replace("/service", "");
        System.out.println("bayeux: " + bayeux + " - sending: " + broadcastChannel + " - " + message.getData());
        System.out.println("bayeux.getChannel(broadcastChannel): " + bayeux.getChannel(broadcastChannel));
        bayeux.getChannel(broadcastChannel).publish(serverSession, message.getData());
    }

基本上,我想要监听所有服务频道,并进行一些处理,然后发布到相同的广播频道,减去/ service。所以,/ service / test成为/ test。

此电流为bayeux.getChannel(broadcastChannel)

返回null

0 个答案:

没有答案