0

我正在研究使用 Java 堆栈(至少对于服务器)构建一个 IM 类型的应用程序。我有兴趣查看有关 Skype/AIM/MSN 等应用程序如何工作的任何信息/建议,以及了解任何可能相关的技术/API。在不泄露这个想法本身的情况下,它可能更类似于 Google Wave 而不是 Skype,但对两者都有用的信息非常受欢迎。

我已经想到的具体要点包括:

  • 服务器与 P2P ......出于记录我的系统的原因,所有通信都需要通过中央服务器。这是其他 IM 工具的工作方式吗……尤其是当音频/视频进入等式时?
  • 与其他系统的交叉通信。是否有用于此的 API,或者所有 IM 提供商是否都在努力保守他们的协议秘密?我正在设计的性质意味着集成可能只是有限的,但从业务角度来看它绝对值得
4

3 回答 3

3

了解XMPP。有大量的 Java 库,大多数主要的 IM 客户端都支持 XMPP。

于 2010-05-25T11:42:05.227 回答
1

如前所述,使用XMPP(代表可扩展消息传递和存在协议)。您可以通过使用现有的 XMPP 服务器(例如,Openfire、ejabberd 等)而不用自己编程来摆脱困境。有一种叫做libpurple的东西可以使用专有的 IM 协议进行连接。

对于标准 XMPP 不能做的事情,您可以查看客户端机器人或外部服务器组件

于 2010-11-23T11:25:18.143 回答
0

构建移动消息应用程序有两种方法:聊天功能开发:

  • 在内部从头开始构建专有解决方案</li>
  • 与移动消息 SDK 解决方案集成。</li>

这是一篇关于粗略估计的开发成本细分的文章,开发 WhatsApp 的成本是多少?开发 3 个月的最低初始固定成本为 260,000 美元,大约 6 名工程师和一名产品经理在硅谷或纽约等地从头开始构建基本的移动聊天功能。更不用说未来运行服务器、维护、可扩展性和功能扩展的成本。花费金钱和时间构建聊天功能的机会成本是无法分配给您的核心功能的资源(除非您正在构建另一个 WhatsApp 或 Facebook Messenger)。

如果您的计划不是重新发明轮子,或者您正在节省工程资源并让专家更好地使用,或者只是通过聊天功能试水,那么集成第 3 方或开源解决方案通常更简单且更具成本效益直接地。他们通常提供现成的可定制 UI 库、跨平台 SDK、后端 API 和 Webhooks 集成等。与使用 Google Analytics、Parse/ Firebase、Crashlytics、AFNetworking、Facebook API、Socket.ioStripe、Twilio的想法相同对于 SMS、Hyphenate.io等。许多公司最初决定构建内部聊天解决方案,但后来意识到随着客户群的快速增长,他们的解决方案无法按预期扩展。

但是,在您开始着手集成聊天功能(无论是 3rd 方集成还是内部解决方案)之前,您可能需要调查以下领域,

  • 成本效益:内部解决方案的投资回报率?实现规模经济?构建工程基础设施非常昂贵,包括初始固定开发成本、运行成本、维护、功能扩展等</li>
  • 可扩展性:低延迟、水平扩展、垂直扩展、无停机扩展、整体性能等</li>
  • 可靠性:稳定性、可靠性、停机时间、保证消息传递、消息和包不丢失等</li>
  • 移动客户端设备:设备电池寿命、蜂窝数据使用情况、零星和缓慢的互联网连接,</li>
  • 所有权:专有与分层定价结构与使用私有部署和托管的许可</li>
  • 安全性:加密、身份验证、隐私</li>
  • 可移植性:支持跨不同平台。即,移动(Android、iOS)、桌面(macOS、Windows)和各种网络浏览器。</li>
  • 功能:一对一聊天、群聊、大音量同时对话、多设备登录、文件共享、音频文件共享和播放、视频/语音通话等</li>
  • 技术:有很多标准化的技术,例如XMPPMQTT、HTTP 长轮询、Socket.io等。大多数消息传递都是基于标准协议构建专有解决方案,例如Facebook Messenger 基于 MQTT。许多第 3 方供应商已经提供了出色的 API 和 SDK 解决方案来减轻开发人员的头痛,例如 Hyphenate.io。</li>
  • Human resources: Are you able to find the engineers with the expertises to fulfill all the requirements above?
 Another thing to consider is the possibility of incorporating trendy chatbots, big data analysis (especially customer service), encryption, etc. Check if 3rd party SDKs, open source, or your engineering team are able to provide those flexibilities or layout the potential runway. Some mobile messaging solutions provider, like Hyphenate.io, have rich chat features set and great flexibility for expansion ready for you to dispose.

Finally, answers to your thoughts,

  1. Server Vs P2P... for reasons of logging my system will require all communication to go through a central server. Is this how other IM tools work... especially when audio/video comes into the equation?

Hyphenate 为您处理通信或消息传递以及建立视频/语音呼叫。

  1. 与其他系统的交叉通信。是否有用于此的 API,或者所有 IM 提供商是否都在努力保守他们的协议秘密?我正在设计的性质意味着集成可能只是有限的,但从业务角度来看它绝对值得

**在通信安全方面,您可能需要研究 TLS/SSL 以实现传输层安全性、OAuth 2.0 用于身份验证和端到端加密的 3 个主要组件。**

于 2016-10-13T22:00:17.563 回答