本文主要介绍如何使用表格存储实现一个消息广场功能。很多应用中都有动态或消息广场的功能,在消息广场中一般有两个Tab:一个是关注人,一个是广场。本章节重点分析关注人Tab。

背景

  • 关注人Tab需要实现的功能
    • 关注:用户之间可以相互关注。
    • 发布:用户可以发布新消息。
    • 查看(获取Feed流消息):用户可以查看自己发布的消息列表。用户可以查看自己关注的人的消息。
  • 方案
    • 使用表格存储作为存储和推送系统。
    • 采用Timeline的显示方式,希望用户可以认真看每条Feed。
    • 采用推模式。
  • 角色及角色功能
    • 发送者功能

      发送状态:add_activity()

    • 接收者功能
      • 关注:follow()
      • 读取Feed流:get_activity()
    • 消息
      Feed消息中至少需要包括下面内容:
      • 发送人:actor
      • 类型:verb,例如图片、视频、文本
      • 文本文字:message

功能实现

您可以使用表格存储API实现以下功能:

  • 发布新消息
    • 接口:add_activity()
    • 实现:使用get_range接口调用关注列表,返回粉丝列表。使用batch_write_row接口将feed内容和ID批量写入个人页表(发件箱)和所有粉丝的关注页表(收件箱),如果量太大,可以多次写入。或者调用异步batch_write_row接口,目前C++ SDK和JAVA SDK提供异步接口。
  • 关注
    • 接口:follow()
    • 实现:使用put_row接口直接写入一行数据(关注人,粉丝)到关注列表和粉丝列表(粉丝,关注人)即可。
  • 获取Feed流消息
    • 接口:get_activity()
    • 实现:从客户端获取上次读取到的最新消息的ID:last_id。使用get_range接口读取最新的消息,起始位置是last_id,结束位置是MAX。如果是读取个人页的内容,访问个人页表即可。如果是读取关注页的内容,访问关注页表即可。
说明