我们正在使用jersey 2.8在我们的应用程序中实现RESTful webservice。
因此,我们使用ServerSentEvent(SSE)来通知用户在服务器端发生任何事件。
我们发现有两种实现方法。 1.通知。 2.广播。
对于这两种类型,注册用户都会收到通知。
通知:将创建用户为同一个新线程注册特定事件,并在线程中通知客户端。
使用通知方法的问题:在通知的情况下,我们必须继续等待事件发生(通过简单地无限地轮询线程中事件的发生)。
广播:为了摆脱对我们使用广播的事件的无限轮询。在这里,用户注册特定事件,并且事件发生它可以发布到客户端。
广播方法的问题:如果我们想要通知特定的用户群,我们就不知道应该如何实现这一点。
例如:在Facebook通知的情况下,X人发布某些状态,有以下类别的人, Y - 谁喜欢这个帖子。 Z - 谁评论了这个帖子。 q - 谁是X的朋友,但既没有评论也没有喜欢。
因此,当人X发布一些状态更新时,人Z将对其进行评论,以便他将注册该事件(即,如果其他人对该帖子发表评论,则会通知Z,但不会通知Y)。 / p>
如何使用jersey 2.8 SSE实现此类通知?
答案 0 :(得分:0)
我采用以下方式实现相同的
commentId
的条目映射到广播公司。并且用户Z将被添加到要广播的客户端列表中。
commentId
获得相应的广播,并将消息广播给客户。