【发布时间】:2011-12-14 17:14:25
【问题描述】:
所以基本上我需要这样的系统:
- 我们有用户
- 用户有朋友
现在,如果用户访问该网站,他们可以像推特一样发布“活动”,输入他们正在做的事情,他们所有的朋友都会得到实时更新。
我已经看了一到三个星期的电梯,并深入研究了聊天服务器示例,但正如我所说,如何为朋友发布的“活动”制作彗星演员?
【问题讨论】:
所以基本上我需要这样的系统:
现在,如果用户访问该网站,他们可以像推特一样发布“活动”,输入他们正在做的事情,他们所有的朋友都会得到实时更新。
我已经看了一到三个星期的电梯,并深入研究了聊天服务器示例,但正如我所说,如何为朋友发布的“活动”制作彗星演员?
【问题讨论】:
我看到了两种通用方法:
使用与聊天示例相同的方法:只需使用一个“聊天”服务器来保存所有活动并注册每个用户。如果发布了一个新活动,每个用户都会被通知并且必须检查该活动是否是由其朋友发布的(可能通过 match/PartialFunction)。如果是则显示它,否则丢弃它。
每个用户使用一个“聊天”服务器,并且只在该服务器上注册用户的朋友。注意:我不知道在这种情况下,您是否需要为您关注的每个用户在每个服务器上设置一个彗星侦听器,或者彗星侦听器是否可以侦听多个服务器。如果每台服务器需要一个侦听器,则必须在显示这些之前合并所有正在侦听的活动。
方法 1 更接近于 ChatServer 示例,但我建议遵循方法 2,因为其中的通信较少,因此应该可以更好地扩展。同样使用不同的服务器应该可以提高可伸缩性,因为您可以基于它进行分区。当然,与仅使用一个单例“聊天”服务器相比,您需要进行更多管理。
【讨论】: