在处理 IM 应用程序之前,我需要了解什么?

在处理 IM 应用程序之前,我需要了解什么?

问题描述:

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

I'm looking into building an IM-type application using Java stack (for the server at least). I'd be interested to see any information/advice on how applications like Skype/AIM/MSN work, as well as know any technologies/APIs that might be relevant. Without giving away the idea itself, it's perhaps more akin to Google Wave than Skype, but information useful for either is very welcome.

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

Specific points I have already thought of include:

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

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

Get to know XMPP. There's plenty of Java libraries and most major IM clients support XMPP.