我正在开发一种使用社交图的服务。
管理用户连接的单独模块基本上负责所有相关操作。在某些服务中,您需要了解所有用户连接,以提供正确的响应。
我看到它的方式有4个可能的选项来实现它:
基于服务器的连接支持。
1.1。每次社交图形数据请求从模块中查找好友列表,并处理相应的响应。
1.2。拥有Key - playerID,Value - 所有玩家连接的内部缓存,添加将此缓存更新到连接模块的责任,并使用它而不是引用此模块。
基于客户端的连接支持。
2.1。添加一个包含所有朋友列表的特殊Cookie,以便服务器可以只读取该Cookie并提供所需信息,而无需与外部模块通信。 (这可以通过例如为Cookie提供一些签名来保护,并通过为所有连接相关数据添加一些路径进行优化)
2.2。在客户端中添加连接管理层,因此它会通过在每个请求上提供连接列表来明确请求所有需要的信息。
当我查看Facebook Cookies时,有一个fr cookie,我可以推测它用于这种功能。
facebook如何解决这个问题?
答案 0 :(得分:0)
如果您只想维护每个用户的朋友列表,则不需要完整的社交图表。存储在数据库中的简单朋友列表可以正常工作。
客户端存储通常仅用于缓存或会话数据,您不希望用户因为重新安装浏览器或切换计算机而丢失其朋友列表。
如果您确实想要实现完整的社交图,请查看图形数据库。 Neo4J是我用过的,很容易上手。