运行自定义 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 服务器应用程序有多容易? 的相关文章

  • Jabber-net 集成

    我想请求您提供有关如何使用 Google Talk Bot 来与我的服务器上的代码进行通信的帮助 我已经从 code google com 下载了 Jabber Net 但是那里的示例还不够 我对这些技术很陌生 并且不知道 客户端将如何到达
  • 使用 Jabber 发送网络消息

    也问过服务器故障 https serverfault com questions 19586 using jabber to send network messages 我也被建议将其发布在这里 我们需要在其他用户在线提交报告内容时通过网络
  • 发送自定义 IQ 时来自服务器的服务不可用响应

    我正在尝试从 android 发送带有 IQ 的自定义信息 所以我使用下面的代码来发送自定义 IQ 消息 public void onClick View arg0 CustomIQ req new CustomIQ req myData
  • Openfire Android PubSub 订阅请求批准

    我是 Openfire 的新手 因此我对 pubsub 功能有疑问 实际上 我已经创建了一个节点设置访问模型 as 授权 如下所示 PubSubManager mgr new PubSubManager xmpp getConnection
  • Facebook 聊天 - X-FACEBOOK-PLATFORM 身份验证

    我想在 Android 上构建一个 XMPP 客户端 我已经使用 Digest MD 5 进行身份验证使其完美运行 但是当我尝试将其转换为 X FACEBOOK PLATFORM 时 它一直失败 因此基本上 X FACEBOOK PLATF
  • 使用 strope js 基于 Javascript 的 XMPP 聊天客户端 - 示例和教程? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想制作一个简单的基于 javascript 的 XMPP 客户端 我偶然发现了 strope js
  • Strope 在页面卸载时发送双重请求

    我用 jQuery Strope 编写了一个 XMPP 客户端 一切都运行良好 一对一 存在 MUC 等 并且包含在 jQuery 插件中 但是 当页面卸载时 它会发送 2 个具有相同 Rid 的最终请求 最近当我开始处理会话附件时 这才成
  • 使用 Node js 将下游消息发送到 google ccs

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

    我搜索过但没有找到 XMPP 使用哪些端口 我需要实现XMPP服务器和客户端并使用XML传输 文件传输和流媒体 他们使用不同的端口吗 有没有办法让它们都一样使用 这样我就不需要打扰网络管理员 谢谢 根据维基百科 http en wikipe
  • 开发一个移动聊天室,后端使用XMPP还是WebSocket?

    移动聊天室的一些要求 应该能够无缝地处理客户端由于移动网络而频繁连接 断开的情况 节省带宽 减少开销 我没有 XMPP 经验 我只使用过 Node JS 服务器 使用 JavaScript 很容易设置和破解服务器 但似乎 XMPP 是聊天室
  • FCM 服务不可用 nack

    我有一个 python3 程序 可以成功连接到 FCM XMPP 测试服务器 但是 发送 JSON 后 它返回给我一个SERVICE UNAVAILABLE每次nack消息 上周的同一段代码运行得非常好 The 文档 https fireb
  • 为什么openfire的用户在会话中不存在SESSION的情况下仍保持在线

    I m developing an android app contains Messaging using OpenFire as an XMPP server and using Smack for android client All
  • XMPPFramework - 如何注册新用户帐户

    我正在尝试使用 XMPPFramework 连接到 Openfire 服务器并创建一个新的用户帐户 如果我已经以其他用户身份登录 此代码将创建一个新的用户帐户 NSXMLElement query NSXMLElement elementW
  • 使用 smack 和 openfire 服务器在聊天列表中阻止用户的问题

    我想从我的聊天列表中屏蔽某个特定的朋友XMPP 代码工作正常 没有例外 但我无法阻止用户 我正在使用开火服务器 我应该在服务器上进行哪些更改 你们有什么想法吗 My code public void XMPPAddNewPrivacyLis
  • 使用 iOS Openfire 和 Robbie Hanson 库加入具有所有者权限的现有 XMPP MUC Room

    我正在使用以下代码加入现有的 MUC 房间 XMPPRoomMemoryStorage roomStorage XMPPRoomMemoryStorage alloc init XMPPJID roomJID XMPPJID jidWith
  • 我在 ejabberd (17.07) 上的 Android 设备上尝试使用 smack api(4.2) 注册用户时遇到错误

    我试图找出错误的原因 但找不到 如果有人可以提出一种方法 我们将不胜感激 早些时候我使用的是带有默认 mnesia 的 ejabberd 2 1 版本 运行良好 我能够从 Android 应用程序注册用户 但是现在当我用mysql安装新的e
  • Android GCM:了解 XMPP

    我正在尝试使用应用程序在我的 GCM 中实现 XMPP 协议 但即使经过广泛搜索 我也不理解其背后的概念 另外 也许我并不真的需要 XMPP 来完成我想用我的应用程序做的事情 但我喜欢学习东西 让我们以 HTTP 为例 我的应用程序将 he
  • 如何在 XMPP 中实现“上次查看时间”功能(如 Whatsapp)?

    我正在开发一个聊天应用程序 并希望添加 上次查看时间 功能 我正在尝试使用存在节来实现它 但遇到一个问题 请检查下面的链接 当用户 B 也不可用时 未获取用户 A 的不可用状态 https stackoverflow com questio
  • 如何在后台保持 iphone ios xmpp 连接处于活动状态?

    iPhone 的 XMPPFramework 功能强大 我已经启动并运行了它 但是如何在后台保持连接 10 分钟以上 我希望获得更多有关如何实现此目标的文档 操作方法 因此 用例非常简单且常见 Joe 在线并且正在使用 iPhone 聊天应
  • 无法向 openfire 服务器发送消息

    我无法使用 SMACK API 向 openfire 服务器上的 XMPP 客户端发送消息 我不确定我哪里出错了 我在 gtalk 上测试了相同的代码 它工作正常 public class SenderTest public static

随机推荐

  • 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