XMPP 服务器和自定义 API

Posted

技术标签:

【中文标题】XMPP 服务器和自定义 API【英文标题】:XMPP Server and Custom APIs 【发布时间】:2016-07-14 05:22:17 【问题描述】:

我有一个场景,我需要一个适用于 androidios 的聊天客户端和一个 XMPP 服务器,可以私人设置或托管。我需要从移动应用程序(聊天客户端)和基于 Web 的应用程序调用三个 API。

1) 需要可以向XMPP服务器注册新用户的API,以便将来如果聊天客户端调用xmpp服务器,服务器可以识别它。(移动应用程序会调用这个api)

2) 需要可以创建聊天组的 API。 (基于网络的应用程序将调用此 api)

3) 需要可以将用户添加到聊天组并可以为特定聊天组的用户创建会话的 API(移动应用程序将调用此 api)

我需要在一些现有的 XMPP 服务器中创建上述 API 作为自定义 API,还是需要创建自己的 xmpp 服务器?

请推荐任何符合我要求的好的 XMPP 服务器。

我不知道如何继续上述要求。

请注意,我在 .net 技术中需要它。

【问题讨论】:

对于 iOS 和 Android 特定的 SDK:twilio.com/docs/api/ip-messaging 【参考方案1】:

作为服务器,您可以或多或少地使用您想要的。 确实 OpenfireEjabber 被大量使用,并且或多或少地支持所有 XMPP 规范。

关于 API:您有 2 个选择:

    为每个平台获取“最佳”API,为每个平台做你 需要它自己的客户端(最好的性能) 使用 javascript API 并在您的 declied 平台应用程序。

这是 API 列表: https://xmpp.org/software/libraries.html

由于各种问题,很难提出特别的建议。

据我所知,Smack 是一个非常完整的 API,并且适用于 Android:它不是那么容易使用,但 Bubbler 是(即使不是全部支持) .

关于js: strophe.js 支持聊天和群聊

关于会话:它是 75% 的服务器和 25% 的 API。 Api 只需要连接和登录,服务器将存储会话。

关于创建: Smack 确实,必须检查其他 API。 但是编写这种函数并不难(XMPP 需要一个固定的模板 XML,只需复制这个 XML)。当然,最好有一些已经煮熟、测试和准备好的东西,但可以在短时间内开发出一个单一的功能。

【讨论】:

感谢您的回复,但我需要澄清一下,我认为我的问题不够清楚。关于 Ejabber,我们是否必须将其部署为我们站点的 XMPP 服务器或他们提供服务? 所有服务器都是独立的(所以你需要“部署”,即使它只是安装+运行+让 IP 可用)但是你可以为你的用户使用一个开放的服务器。但是你会遇到很多副作用:如果你想定制一些东西怎么办?你不会的。用户数据库呢?你不会拥有它。如果您尝试注册一个已经注册的用户怎么办?您可以为您的用户强制使用前缀,但您永远无法确定它是唯一的。不过,这是官方名单:list.jabber.at 我们不想使用公共服务器,我在问他们是否提供一些商业 XMPP 服务器,以便我们可以购买这些服务器来集成我们的 android 或 ios 应用程序。哪个好?购买服务(xmpp)还是部署自己的服务器? 你知道金钱是否值得花时间。使用您自己的服务器,您将支付更少的硬件费用(如果您已经拥有一台公共机器 - 服务器),但如果您认为需要,您必须关心安全性。安装 Openfire 非常简单。如果你要购买一项服务,这项工作是收费的,我不能真正建议它的价格是否值得你。如果你有严格的时间可能是的。此外,“部署”不需要任何 servlet 容器或 AS,所以没问题。 好的,我们现在没有任何资金问题,我们可以购买服务器。主要关注的是服务器应该能够与 android 和 ios 聊天客户端集成。 ejabber 或 open fire 是否提供一些 ios 或 android 聊天模块以及服务器?

以上是关于XMPP 服务器和自定义 API的主要内容,如果未能解决你的问题,请参考以下文章

标记之间的 Google Maps API 和自定义折线路线

Paypal REST API 和自定义结帐页面

扩展 IdentityUser 和自定义查询的 Web API

Ansible API和自定义module

Ansible API和自定义module

如何使 AzureAD 和自定义 JWT 令牌在 Web API 中并行工作?