【问题标题】:Libraries to connect to Instant Messaging (IM) services like Yahoo , MSN, AIM through Java Program [closed]通过 Java 程序连接到即时消息 (IM) 服务(如 Yahoo、MSN、AIM)的库 [关闭]
【发布时间】:2010-10-28 17:12:36
【问题描述】:

我正在寻找一些可以帮助我通过 Java 程序连接到 IM 网络的库。

我的要求如下:

  1. 用户应该能够登录, 检索好友列表,并能够 给他的朋友发消息
  2. 应将消息传递给 离线朋友也是。

我对 lib-purple 做了一些研究。但它不是用Java编写的。是否有任何可用的 Java 包装器,以便我可以将它与 Java 程序一起使用?或者一些可以与 XMPP 服务器一起使用的 libpurple 插件?或者有没有其他的解决方案。

谢谢 阿内兹

PS:

我已尝试将 Openfire XMPP 服务器与 IM 网关插件结合使用(也尝试了 Kraken IM 网关插件)。它不会向 MSN 和 AIM 朋友发送离线消息(适用于 Yahoo 和 GTalk)。

我也尝试了以下库,发现它们也不支持向离线朋友发送消息

  • Java MSN 库
  • jYMSG(雅虎)
  • DAIM(用于 AIM)

【问题讨论】:

  • 你能告诉我你是如何设法连接到雅虎的代码吗?我在服务器上安装了 openfire,目前使用 xmpp 示例代码,但无法连接到雅虎和 msn id。感谢你的帮助。谢谢,罗纳克

标签: xmpp instant-messaging


【解决方案1】:

您可以使用 Kik API 连接 Kik Messenger 移动 IM 服务。它让您的 Android 或 iPhone 应用程序可以使用 Kik 自己的传输和基础设施向其他移动应用程序用户发送丰富的内容和文件。在更简单的场景中,集成也非常快 - 5 行代码。 API 网站或博客上有更多信息:http://www.kik.com/devhttp://apiblog.kik.com

免责声明:我是 Kik API 背后的人之一 :)

【讨论】:

  • Kik 是否不再提供 XMPP 访问权限,我可以使用 pidgin 访问它吗?
【解决方案2】:

从创建 Openfire 的同一个人那里查看 Kraken... 只需谷歌“Kraken Jabber”并点击第一个结果

这里有一个简短的描述: Kraken 是 Openfire IM Gateway 插件的延续,但它适用于任何 XMPP 服务器。它为 XMPP 用户提供了一种登录方式,并通过他们的旧 IM 帐户(例如 AIM、ICQ、MSN、Yahoo 和朋友)进行通信。

似乎在我设置的服务器上运行良好

【讨论】:

    【解决方案3】:

    通过Java Native Interface,您可以使用其他语言的库,例如c++。 因此,您可以使用 Miranda IM 等中的 ICQ.dll 连接到 ICQ。

    【讨论】:

      【解决方案4】:

      我一直在努力写这篇文章。显然我不允许添加超链接甚至 URL。

      谷歌“java目标api”

      第一项是在 Java 中创建支持 AIM 的应用程序,第 1 部分。很好读。您基本上需要请求开发密钥。然后,本文将引导您完成 Eclipse 的设置。

      我怀疑其他服务也需要开发密钥。

      干杯!

      【讨论】:

        【解决方案5】:

        创建 openfire XMPP 服务器的人创建了一个非常好的 Java 库,用于与 Xmmp 服务器进行通信,并通过 Jabber 传输系统与几乎每一个即时消息传递可能性进行通信。

        该库名为 Smack,可在 Ignite Realtime 的主页上找到。

        我为一些项目使用了不同版本的 Smack,并用它构建了一个自定义 Jabber 客户端。该库现在看起来非常稳定和成熟。

        我不知道发送给离线用户的消息是如何处理的,但是当你离线时发送给你的消息存储在 openfire 服务器上

        【讨论】:

        • @Janusz 很好地与 Openfire XMPP 服务器对话,我使用了 smack。 Infact Smack 可用于直接通过 GTalk 服务器通话 但是,smack 不能用于连接到 Yahoo、AIM 和 MSN 等传统 IM 服务。我不认为这些服务提供了 XMPP 网关。
        【解决方案6】:

        您希望将离线消息存储在本地还是服务器上?我知道 AIM/MSN 有某种服务器来存储离线消息,但我还没有做足够的研究来了解它的可访问性。另一种方法是创建(或使用现有的)机器人,您可以将消息发送到该机器人来处理传递。

        出于目标,JAIMBot 似乎提供了一个支持此功能的库:http://jaimbot.sourceforge.net/

        通过谷歌搜索“msn 离线消息传递机器人”或类似查询,您可能能够找到类似的库/机器人来处理其他系统。

        祝你好运!

        【讨论】:

        • 我的要求是,一旦我发送消息,对离线的 MSN 联系人说,他应该在下次登录时收到它......消息应该到达他并且不会丢失。我相信所有这些消息被存储和传递给离线联系人的机制都应该在服务提供商端处理,即MSN和AIM。我这样说是因为对于 Yahoo 和 GTalk,我除了发送消息之外什么都不做,并且当他们下次登录时,它们会自动发送给离线联系人。
        • 好吧..我忘了提到我也尝试过 JAIMBot。它对我不起作用。显然,最近 JAIMBot 上没有太多的开发活动,而且他们支持的协议似乎不再被 AIM 支持。这是我在使用 JAIMBot 时遇到的错误:'错误:无法正确处理瞄准协议'。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-05
        • 1970-01-01
        • 1970-01-01
        • 2011-05-07
        相关资源
        最近更新 更多