如何处理用户而不是处理ip地址



我计划用Java 7编写一个P2P聊天应用程序,其中我们有一个联系人列表(就像在Skype这样的应用程序中一样)。然后,我们可以要求每个连接的联系人开始聊天会话(如Skype)。但是Java Socket实现要求我们提供另一个端点的ip地址。这导致了两个主要问题:

  • 管理动态ip地址:特别是在其他端点用户连接
  • 之前
  • 管理其他用户每次可以简单地使用另一台计算机的事实

那么,你能给我什么建议吗?

用户应该使用某种ID标识自己,例如电子邮件地址或登录名。

您必须在系统中创建一些"固定点",例如给定的IP地址或域名,客户端可以在其中注册它们自己(在那里您可以存储用户ID)。

每次IP地址更改时,客户端都会在服务器上更新它,因此请求联系信息的其他客户端将获得新的IP。

您可以依赖一些外部基础设施来进行标识。例如,可以使用openpgp签名的消息和密钥来标识发送方。PGP密钥经过签名和信任,并且存在用于验证的PGP密钥的集中存储库。在这种情况下,IP地址并不重要,但是发送者仍然需要知道发送消息到哪里,也就是说,你仍然需要一个目录(一些已知地址的服务器)来维护IP<->User映射。

最新更新