运行自定义 XMPP 服务器应用程序有多容易?

2024-04-06

参考这个问题 https://stackoverflow.com/questions/2904163/what-do-i-need-to-know-before-working-on-an-im-application,XMPP 被认为是 IM 互操作性的开放标准。

对于我的应用程序来说,如果我使用 XMPP 进行内部客户端-服务器通信,或者开发自己的内部协议但在服务器上使用 XMPP 以允许稍后与其他服务器进行通信,那么将会有一个重大选择。我的直觉是后者会更容易,but也许我高估了采用现有 Jabber 服务器或 XMPP 服务器库并构建自定义服务器应用程序需要多少工作?

如果我的客户愿意always与我的服务器交谈,从不直接与其他服务器交谈,使用 XMPP 明智还是过度?

假设我想拥有自己的用户、消息、组和自定义数据的数据库。使用 XMPP 进行此设置实际上涉及什么,以便我可以自由地将数据发送到我的服务器,并让我的自定义服务器逻辑处理它?是否有任何库允许我运行一个“骨架”XMPP 服务器,在其中我提供自己的处理程序,这些处理程序在收到消息等时被调用?

我了解了 XMPP 的整体概念,但对实际从哪里开始有点迷失,甚至在区分我是否需要 Jabber 服务器应用程序或周围的开源服务器库之一时也是如此。

还有许可问题。我当然不打算开源主要代码库,如果我要使用 GPL XMPP 解决方案进行客户端-服务器通信,我的理解是我会努力避免用 GPL“污染”我的代码。


如果你在linux下的话很简单

sudo apt-get install ejabberd

然后您可以将您的首选 IM 客户端指向 localhost:5222,然后就完成了。 当然,如果您想要域名等,则需要更多配置/安装内容,但我认为这不是您所要求的。

注意:ejabberd 还有一个 windows 版本,http://www.process-one.net/en/ejabberd/downloads http://www.process-one.net/en/ejabberd/downloads

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

运行自定义 XMPP 服务器应用程序有多容易? 的相关文章

  • Openfire Android PubSub 订阅请求批准

    我是 Openfire 的新手 因此我对 pubsub 功能有疑问 实际上 我已经创建了一个节点设置访问模型 as 授权 如下所示 PubSubManager mgr new PubSubManager xmpp getConnection
  • 低延迟、大规模消息队列

    我正在重新思考 Facebook 应用程序和云计算时代的大型多人游戏 假设我要在现有开放协议之上构建一些东西 并且我想为 1 000 000 个同时玩家提供服务 只是为了解决问题 假设每个玩家都有一个传入消息队列 用于聊天等 平均还有一个传
  • 使用 Node js 将下游消息发送到 google ccs

    我在用节点xmpp https github com node xmpp node xmpp连接到 google gcm ccs 服务器 我跟着连接 现在 每当我收到来自我的 redis 订阅者的消息时 我需要发送一条下游消息 我订阅了一个
  • FCM 服务不可用 nack

    我有一个 python3 程序 可以成功连接到 FCM XMPP 测试服务器 但是 发送 JSON 后 它返回给我一个SERVICE UNAVAILABLE每次nack消息 上周的同一段代码运行得非常好 The 文档 https fireb
  • 使用 EC2(Amazon Web Services)自动 Ejabberd 集群[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 Using Ejabberd http www process one net en ejabberd in EC2 http aws amazon
  • 为什么openfire的用户在会话中不存在SESSION的情况下仍保持在线

    I m developing an android app contains Messaging using OpenFire as an XMPP server and using Smack for android client All
  • XMPP BOSH 与 COMET

    我想编写一个实时聊天应用程序 并且需要决定使用哪些技术 这些技术之间有什么区别 您更喜欢哪一种 为什么 WebSockets 不是一个选择 因为它还没有准备好在野外战斗 Thanks 你应该阅读这个问题 为什么 BOSH 没有更受欢迎 尤其
  • 将 aSmack 0.8.3 用于 XMPP 聊天应用程序时出现 NoSuchAlgorithmException

    我已经包含了 logcat 输出 请帮我解决这个问题 08 09 11 06 32 762 警告 NetworkManagementSocketTagger 883 setKernelCountSet 10012 0 失败 错误号 2 08
  • XMPPFramework - 如何注册新用户帐户

    我正在尝试使用 XMPPFramework 连接到 Openfire 服务器并创建一个新的用户帐户 如果我已经以其他用户身份登录 此代码将创建一个新的用户帐户 NSXMLElement query NSXMLElement elementW
  • 如何有效地定义基于 XML 的文本协议的传输结束?

    我想开发一个基于XML并通过TCP IP套接字传输的文本协议 假设我有一个简单的请求 响应机制 可以通过持久化发送 客户端和服务器之间的 TCP IP 连接如下
  • 无法与 aSmack 4.0.2 建立新连接

    我正在学习 Android 编程 这几天我一直在努力解决这个问题 我正在编写一个应该连接到 XMPP 服务器的 Android 应用程序 我总是遇到同样的错误 并且真的不知道我做错了什么 我尝试过通过谷歌找到的示例代码 但也无法与它们建立连
  • ejabberd MAM 不适用于 MUC

    xep 0313 适用于名册 但不适用于房间聊天 我可以获取名册的存档消息 但无法获取房间的存档消息 为什么
  • 为什么我的 wss://(基于 SSL/TLS 的 WebSockets)连接立即断开而不给出任何错误?

    将此发布给遇到同样问题的其他人 我当时正在开发一个浏览器客户端 它使用 stanza io 连接到 XMPP 服务器 在我的例子中是 Prosody 我默认使用 wss 连接 在开发过程中的某个时刻 我的客户端根本无法连接 它会立即无提示地
  • aSmack 即服务

    基本上我有一个运行整个项目的主类 该代码运行完美 尽管一旦应用程序失去焦点 它就会变得不活动 我想知道如何将其变成一项服务 一个会在启动时启动的 该应用程序将是一个用于通知的单向消息系统 IE 桌面客户端 gt Openfire 服务器 g
  • Google Talk XMPP - 什么是 X-GOOGLE-TOKEN?

    我正在尝试向 Google Talk 进行身份验证 这X OAUTH2使用 OAuth2 令牌的机制是有据可查 https developers google com talk jep extensions oauth 但什么是X GOOG
  • XMPP 多用户聊天设置群聊头像

    我正在开发一个带有聊天功能的 iOS 应用程序 我正在为该应用程序使用 XMPP 在XMPP多用户聊天中 是否有功能可以像我们在whatsapp中那样为会议室设置头像或群组图像 我检查过XEP 0045 http xmpp org exte
  • Android 和 XMPP:当前可用的解决方案 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 哪个 XMPP 库是当今 Android 开发的最佳选择 我一直在使用打补丁 图书馆 http dava
  • 在android中使用smack 4.1获取在线用户(名册条目)

    我一直在尝试使用 android 中的 smack 4 1 beta 2 获取名册条目 https github com igniterealtime Smack wiki Smack 4 1 Readme and UpgradeGuide
  • 使用 Smack 库解析 XMPP 的 EventElement

    任何人都可以帮助向我展示如何解析此事件 pub 元素并获取以下数据包的消息对象 也许我的关键字 搜索词谷歌搜索不正确 但我在寻找有关此问题的文档或教程时找不到任何有用的东西 我读过一些有关 PacketParserUtils 和 XmlPu
  • 使用 proguard 时,smack for android 失败

    我在 Android 应用程序中使用 smack 库 4 1 2 连接到 XMPP 服务器 当代码没有缩小时 即使用 proguard 它运行得很好 但在发布模式下 启用混淆器后 应用程序一旦连接到服务器就会崩溃 我试图按照此处的建议保持所

随机推荐

  • jQuery ajax 回调类成员? [复制]

    这个问题在这里已经有答案了 可能的重复 有没有办法让 JQuery ajax 成功函数访问它所包含的对象 https stackoverflow com questions 5378622 is there a way for a jque
  • 使用 GDI+ 创建透明背景的图像?

    我正在尝试创建一个具有透明背景的图像以显示在网页上 我尝试了几种技术 但背景总是黑色的 如何创建一个透明图像 然后在其上绘制一些线条 Call Graphics Clear Color Transparent 好 清晰图像 不要忘记使用具有
  • JTree 在应用程序启动时添加节点

    我想使用文件浏览器创建文本编辑器 因此当我启动应用程序时 我希望我的程序在 JTree 上添加节点 以便它向我显示所有文件和文件夹 例如 我的文档 文件夹中的所有文件和文件夹 并让我能够访问这些文件和文件夹 尤其是文件夹 我试图弄清楚安德鲁
  • 具有 contenteditable 的 onChange 事件[重复]

    这个问题在这里已经有答案了 代码如下 text span blah blah span text onChange 事件不起作用 至少在火狐浏览器中 我不想使用文本区域 输入标签 因为必须可以仅更改文本中的特定单词 并且必须内联显示 而不是
  • 使用 SQL 代理运行 SSIS 包时出现问题 - 失败并显示“DTSER_FAILURE(1)”

    我有一个存储在 MSDB 数据库中的 SSIS 包 当我执行它时它工作正常 它将在 SA 帐户下运行或使用 Windows 安全性 我想安排此作业与 SQL Agent 一起运行 但是当我这样做时 我收到一个奇怪的错误 并且我尝试的任何配置
  • Discord Webhook 消息无法发送

    所以我有一段不久前有人发布的代码 到现在已经完美运行一年了 它采用谷歌表单答案并将其作为网络钩子发布到不和谐频道 现在从昨天开始就不再起作用了 脚本没有任何改变 function onSubmit e var form FormApp ge
  • 为什么我无法导入 folium python 包?

    我已经 pip 安装了 folium 当我在主目录中工作时尝试导入它时 出现此错误 ImportError Traceback most recent call last
  • 使用程序员 dvorak 键盘布局(移位数字)在 xmonad 中切换工作区

    好吧 我实际上并没有使用德沃夏克 但是Neo2 http neo layout org 但由于我使用的是矩阵式键盘 真正符合人体工程学 http www trulyergonomic com 我也改变了数字 因此我的这个结构xmonad h
  • MSVC 直接构造函数调用扩展

    In 这个回应 https stackoverflow com a 23274182 420683 没有手套的 https stackoverflow com users 1902313 tloveless指出可以在 MSVC 中使用thi
  • 停止 Safari 4 窗口中的按键事件冒泡

    在 Safari 4 窗口中 似乎无法阻止某些关键事件在 Javascript 中冒泡到浏览器 This question https stackoverflow com questions 1492080 disable f5 key i
  • MediaCodec 将 WAV 转换为 AMR 的文件无法播放

    我在用MediaCodec转换一个 wav文件至 amr 我使用以下代码进行输入和获取编码缓冲区 我得到了编码文件 但它无法播放 我的输入是正确的 因为我能够在 Audacity 中播放该文件 我在用EncodeDecodeTest jav
  • ruby 中对象引用的类型

    我是 Ruby 新手 目前正在尝试使用 Ruby 书中的一些示例作为指导 class Account attr accessor balance def initialize balance balance balance end end
  • 如何在领域层使用工作单元

    我正在尝试在 我的服务 类中使用工作单元模式 我有我的 CompanyService 课程 public class CompanyService ICompanyService private readonly ICompanyRepos
  • Html-如何防止连续空格被折叠

    我正在使用 html 模板以编程方式发送电子邮件 我对 html 一无所知 但我刚刚了解到它会折叠连续的空白字符 这会破坏我的格式 我正在通过电子邮件发送数字表 我怎么解决这个问题 只需使用 pre 像这样标记 pre This is so
  • mp4parser 从 Android Studio 在设备上运行,但在手动安装 APK 时崩溃

    我在用着mp4parser合并videos 该应用程序在运行时运行完美A S 但如果我手动安装应用程序 传输并运行APK 或者如果我运行它TestFairy 应用程序崩溃 当我更新我的Target Sdk to Lollipop 我已经添加
  • SQLite3 UNIQUE 约束失败错误

    我正在尝试创建一个数据库 允许用户创建 待办事项 列表并在其中填充要完成的项目 但是 当将数据插入表中时 它给了我一个 UNIQUE 约束失败错误 我不知道如何解决它 这是我用于创建数据库和插入数据的代码 CREATE TABLE user
  • 如何确保用户名不会与现有路由冲突?

    所以我想在我的网站上有网址 例如http foobar com hadees http foobar com hadees这会进入某人的个人资料 但是 在注册用户名时 如何确保他们不会选择与我现有的路由冲突的内容 我猜我需要获取现有路线的列
  • 将可选值分配给变量(如果存在)

    您好 我正在使用 Java 可选 我看到Optional有一个方法ifPresent 而不是做类似的事情 Optional
  • 将 JScrollPane 滚动到底部

    我需要将 JScrollPane 滚动到底部 JScrollPane 包含一个JPanel 其中包含许多JLabels 要滚动到顶部 我只需执行以下操作 scrollPane getViewport setViewPosition new
  • 运行自定义 XMPP 服务器应用程序有多容易?

    参考这个问题 https stackoverflow com questions 2904163 what do i need to know before working on an im application XMPP 被认为是 IM