0

我在理论上知道 pub/sub 模式,现在我想在实践中实现它。

我有一个 Web 应用程序(订阅者),其中包含一个正在侦听名为“新闻”的频道的服务。此频道由其他应用程序(发布者)的列表填充。

所以,我想知道,如何实时通知登录用户收到的消息。(类似于 twitter “new twitts” 之类的东西)。

我的想法:

在我的消费者服务中,我可以将收到的新闻存储在列表中,例如:

@Consumer("myChannel")
public void recNews(New new) {
    allNews.add(new);
}

然后,在我的应用程序中配置一个计时器来读取和重置该列表并将当前状态(lastNews)发送到我的网络控制器:

@Timer("1 per minute")
public void lastNews() {
    lastNews.add(allNews);
    allNews = new ArrayList();
}

我对吗?还是有更好的解决方案?

4

2 回答 2

1

我不会寻找构建自定义解决方案,而是关注 SignalR(https://github.com/SignalR/SignalR/wiki)。它为您处理了许多管道和基础架构问题,是 Web 应用程序的理想选择。

于 2013-03-14T05:48:55.690 回答
0

订阅者在尝试接收之前告诉发布者(频道)它想要接收消息。Channel 不是一些被动的流程,它是一个主动的过程。

使用Apache 骆驼

或查看IP 多播

于 2013-03-14T18:01:14.797 回答