我目前正在考虑编写一个完全 e2e 加密并在 Android、iOS、Linux、OSX 和 Windows 上运行的文本/语音聊天工具。(顺便说一句,如果您知道一个已经完成所有这些事情并且几乎即插即用的工具,请告诉我!)
现在我问自己是否真的需要路由每条消息和每一个电话通过集中的服务器。P2P不是更有效率吗?
这是我可以考虑的 P2P 的利弊列表:
缺点
- 暴露用户 IP 地址
- 发送者和接收者必须同时在线才能交换消息
- IP 地址更改导致断开连接
优点
- 低延迟
- 更少的连接故障点
- 更高质量的通话
- 服务器不需要那么大
- 更高的安全性(更少的潜在拦截点,数据不会意外存储在服务器上等)
- 服务器的临时停机时间并不重要。
好吧,我得出的结论是,我应该给用户一个在两者之间进行选择的选项。
但这是否值得付出努力?
我记得有很多使用 P2P 连接的问题(尤其是电脑游戏)。很多时候,如果没有在路由器中转发端口,这似乎是不可能的......
现在我想知道移动互联网上是否有任何问题,因为我从未见过移动端口转发选项等.