2012-09-29 70 views
3

我创建了一个工作的Google Channel AP,现在我想向所有客户端发送消息。Google Channel API向所有客户端发送消息

我有两个servlet。第一个创建通道并告诉客户端useridtoken。第二个由http post调用,并应发送消息。

将消息发送到客户端,我用:

channelService.sendMessage(new ChannelMessage(channelUserId, "This is a server message!")); 

这会发送消息只是一个客户端。我怎么能把这个发送给所有人?

我是否需要存储每个用于创建频道并为每个ID发送消息的ID?我怎么能通过ID到第二个servlet?

回答

3

使用通道API不可能创建一个通道,然后有许多订阅者。服务器为individual JavaScript clients创建一个唯一的通道,所以如果您具有相同的客户端ID,则只能收到一个消息。

如果你想发送相同的消息给多个客户端,简而言之,你将不得不跟踪活动客户端并将相同的消息发送给所有客户端。

如果这个方法听起来很吓人而凌乱,考虑使用PubNub为您推送通知的消息,在这里你可以轻松地创建​​。要让它在Google App Engine上运行并不难,因为它们几乎支持任何platform or device

3

我知道这是一个老问题,但我刚刚使用通道API来实现发布/订阅模式的一个开源项目,即你可以有多个用户订阅一个主题,然后将所有这些用户将在任何人发布消息时通知该主题。它还具有一些很好的功能,例如自动消息持久性(如果需要)以及“回执”,其中订阅者可以在其他订阅者收到该消息时得到通知。见https://github.com/adevine/gaewebpubsub#gae-web-pubsub。在Apache 2.0许可下获得许可。

+0

感谢您的提示。 – hofmeister

相关问题