p2p - 聊天应用程序,点对点通信
问题描述
我正在使用 Javascript 开发聊天应用程序。当从一个客户端向另一个客户端发送消息时,我是否必须通过服务器发送它,或者我可以直接从对等方法发送它,使用类似 websockets 的东西?
解决方案
欢迎来到您看到设计模式重要性的生活阶段。
您可以使用 Web 套接字的中介模式和代理模式开始解决方案。
是否需要服务器取决于您的设计。
在技术方面,HTML5 提供了多种 API,您可以通过它们自己制作一些东西。HTML5 和 JS 有很多可用的 API。开始挖掘 WebSockets、服务器发送事件、Web Worker。
服务器将在充当调解人的同时为您提供记录保存的灵活性。或者,您可以提出一个纯 p2p 设计方案,其中每个节点或用户通知其他用户他们的详细信息 (IP) 以建立通信。请记住,要使 Web 套接字正常工作,客户端需要知道要连接的地址。也许它可以有固定的主节点。然后,您可以使用 observables 进行轮询和其他功能。查看 BitTorrent 协议以获取设计灵感。
发挥创意并开始设计。
推荐阅读
- asp.net-core - 为什么 FileExtensionContentTypeProvider 不适用于 .min.js 扩展?
- c++ - 如何修复“在抛出 'std::logic_error'what() 实例后调用终止:basic_string::_M_construct null not valid”异常?
- java - 尽管使用 JavaFX 库,但 Javafx 无法在 Eclipse 中解析
- algorithm - 具有二次和线性运行时间的排序算法
- android - Android adb shell 中的 pm list 包出错
- android - 我无法从具有 2 个按钮的片段中创建新的意图/活动
- ubuntu - 服务器上的 Solr HTTP 错误,HTTP 请求失败
- python - 为列表中的所有值添加一个键
- c# - 如何从他的左右字符串中解析一个字符串
- python - Odoo 安装错误:psycopg2.errors.UndefinedTable: 关系“ir_module_module”不存在