【问题标题】:Is GAE Channel API only for creating chat rooms, or can it be used to implement 1-to-1 chat applications also?GAE Channel API 是仅用于创建聊天室,还是也可以用于实现一对一聊天应用程序?
【发布时间】:2014-06-22 01:35:07
【问题描述】:

我正在尝试用 java 构建一个简单的 GAE 聊天应用程序,它可以让用户在一对一的对话中相互交谈。

我曾想过使用 Channel API,但我刚刚意识到 ChannelMessage 只能发送给同时在线的用户。换句话说,只有创建了频道的用户才能接收消息,因为 ChannelService 对象的 sendMessage 方法需要将其他用户用于创建他的频道的 clientId 作为第一个参数。

我理解正确吗?

如果是这样,您还有什么建议来实现一个简单的聊天应用程序,用户应该能够拥有一个朋友列表,他们可以从中选择一个朋友来交谈? XMPP 是一个有效的选项吗?

(我的应用还需要“将朋友添加到您的列表”功能,以及在数据库中存储信息(用户和消息)的某种方式,可能是 Datastore API,因为它是唯一提供每日免费配额的限制)

请帮忙。谢谢!

【问题讨论】:

    标签: java google-app-engine channel-api


    【解决方案1】:

    您可以使用通道 api + 数据存储。您需要跟踪用户何时连接以及何时断开与频道的连接,see here。当他们断开连接时,将消息保存到数据存储区,并在他们在线时显示给他们。

    【讨论】:

    • 非常感谢您的回答!正如您所建议的那样,我阅读了有关 ChannelPresence 的信息,并在寻找如何使用它的示例时发现了这个:neilghosh.com/2013/06/26/google-appengine-channel-api
    • 您能否建议我如何存储和检索每个用户的朋友列表,而不会因为访问数据库过多而超出免费配额的限制?我应该将关系实体作为用户实体的子实体吗?然后关系可以具有以下属性:所有者 - 用户名,朋友 - 用于存储他所有朋友的多值属性。然后当添加一个新朋友时,该属性会更新(但问题再次是成本)还有其他选择吗?请帮忙。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 2017-10-06
    • 2017-02-20
    • 2015-05-26
    • 1970-01-01
    • 2011-03-06
    相关资源
    最近更新 更多