软件介绍:
SocialGroups 是一款基于兴趣小组的社会软件, 用户可以自己设定兴趣小组或者借助于Google搜索形成动态的兴趣小组,挖掘到相同兴趣的用户并进行交流。
本系统使用了第三代P2P技术Kademlia,使该系统在工作时不需要中心服务器。查询和存储都在P2P网络中进行,每一个用户都是平等的。整个网络具有很强的可扩充性,可以支撑到千万量级的用户。而且人数越多,系统工作的稳定性越可靠。
它具有以下功能:
用户可以自定义兴趣小组,兴趣小组可定义多个为关键词,用来挖掘其它具有相同兴趣的用户。兴趣小组是动态的和虚拟的。
用户使用Google等搜索引擎搜索时,基于搜索的关键词将动态产生兴趣小组,并立即搜寻本兴趣小组的其它相同兴趣者。
用户可以和兴趣小组的在线成员聊天。也可以获得该成员的好友列表, 然后同其他成员交流。 抓图:
系统介绍:
系统用户
系统用户在P2P网络上使用随机产生的用户ID(128位的数字),以最大程度地保护用户隐私。该ID同时作为Kademlia网络的搜索和存储ID。
登录到P2P网络
用户第一次使用软件时,登录到一个启动主机(Boot Host)上。从该主机上获得一部分其它用户的IP地址。用户选择其中的一个或几个连接到P2P网络上。
以后的启动可以使用缓存的主机列表,不再需要中心服务器启动。
建立兴趣小组
登录到P2P网络后,用户可以建立自己感兴趣的小组名称。该名称是用户自由输入的,对于该名称的选择,需要有一定的技巧。如果选择的名称太普通,找到的其它用户必然增多,小组成员间的兴趣凝聚力反而降低.
比如要找到对Bittorrent感兴趣的程序员,兴趣小组的名称随便定义,内含多个关键词
bittorrent 开发
bittorrent 程序员
bittorrent programmer
兴趣关联:使用Google搜索
使用搜索是获得兴趣相同用户的捷径, 使得在Google上搜索过相同内容的人聚到一起。本系统中的搜索关键词将自动添加到列表中,同时搜索用户和发布自己的信息。
兴趣关联:使用搜索历史和静态兴趣小组列表
为了更准确地找到相同兴趣的用户,系统对搜索到的同一兴趣小组的成员进行排序,排序的方法是再次从用户那里拿到该用户所定义的关键词和搜索历史,做出智能判断。
用户之间交流
对于出现在自己的兴趣小组中的用户,可以启动聊天/多人聊天功能交流。还可以把其他人加入到自己的永久好友列表中。
技术简介:
Kademlia网络
Kademlia网络是第三代P2P网络中的实现技术之一。P2P网络中的用户不需要中心服务器就可以查找到其它用户,整个搜索过程是收敛的,不会造成网络数据风暴。
兴趣小组的发布
兴趣小组发布时生成唯一的128位ID,首先方法是转为小写字母,然后以空格切分成最小单元,再把最小单元排序,使用MD4生成ID。该ID将发布到整个网络中,由和该ID“距离”最小的用户存储。
兴趣小组的搜索
搜索时,同样对小组名称作处理,生成128位ID,然后从P2P网络搜索。
用户在线信息的查找
用户在线信息和在线状态通过直接查找用户ID获得。
用户交流:跨越NAT
为了使两个NAT后的用户可以通讯,在公网上用户建立握手服务器,如果都是内网用户,则通讯数据通过握手服务去中转。