问题标签 [xmpp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
4181 浏览

networking - 桥接到 XMPP 的最佳架构是什么?

如果我有一个单独的系统,它有自己的用户和存在概念,那么创建到 XMPP 服务器网络的桥接的最合适的架构是什么?据我所知,主要有以下三种方式:

  1. 充当服务器。这会创建一个接触点,但我担心它会对兼容性产生影响,并且可能会在我的系统中增加用于模拟服务器的复杂性。

  2. 充当客户。这似乎意味着我的系统中的每个用户都需要一个连接,而这并不能很好地扩展。

  3. 我听说过 XMPP 网关协议,但不清楚这是否比客户端解决方案更好。我也无法判断这是否是标准的。

任何建议或权衡将不胜感激。例如,这些解决方案中的任何一个是否都需要在目标 XMPP 服务器内运行代码(这不太可能是我能做的)。

0 投票
1 回答
3917 浏览

configuration - Jabber Openfire 服务器 v3.6.0a+ - 如何使用混合身份验证?

我正在为我的网站设置 Jabber 服务器。我已经在 openfire 数据库中建立了一些用户帐户,并在它们之间建立了工作 IM。

我现在希望从我的主数据库(members表、带有loginpassword[纯文本])和allowed_to_IM[0 或 1] 字段)中添加(一些)用户,以允许他们相互通信。然而Hybrid,身份验证是 v3.6.0a 中的一项新功能,并且几乎没有文档说明文件中需要哪些配置openfire.xml来实现数据库连接(到第二个数据库),以及属性中可能包含的其他内容(这也需要花费很多时间)配置的信息远离 XML 文件)。

我的问题是:有没有人有一个检查多个数据库的完整示例?我看到的所有例子似乎都只是片段。

0 投票
3 回答
607 浏览

java - 串行硬件设备的消息传递解决方案

我有一个串行硬件设备,我想与多个应用程序共享,它可能驻留在多个网络内或跨越多个网络的不同机器上。一个关键要求是系统必须支持双向通信,以便客户端/串行设备可以存在于防火墙后面和/或不同的网络上,并且仍然通过中央服务器相互通信(发送和接收)。系统的另一个要求是客户端必须能够确定网关/串行设备是否离线/在线。

该串行设备能够接收和发送数据包到无线网络。与串行设备通信的软件是用 Java 编写的,如果可能的话,我希望它保持 100% Java 解决方案。

我目前正在研究 XMPP,使用 Jive 软件的 Openfire 服务器和 Smack API。使用此解决方案,来自串行设备的数据包通过 XMPP 传递给客户端。类似地,任何客户端应用程序都可以通过 Smack API 向串行设备发送数据包。数据包只是字节数组,大小限制在 100 字节左右,因此可以将它们转换为十六进制字符串并作为消息正文中的文本发送。系统应该容忍客户端/串口设备离线,这意味着当它们再次可用时它们会自动重新连接,但如果客户端离线,数据包将被丢弃。数据包必须近乎实时地发送和接收,因此不希望离线传递。安全性应由消息传递系统和提供的客户端 API 提供。

我想听听其他可能的解决方案。我想过使用 JMS,但它似乎有点过于重量级,我不确定它是否支持了解客户端和/或网关/串行设备是否离线的要求。

0 投票
2 回答
8808 浏览

xmpp - 在 Windows 2003 上运行 Jabber/XMPP 的最佳选择是什么?

我希望在 Windows 2003 服务器(网络场)上运行 Jabber 服务器,并且希望从运行具有约 500 个并发用户的实时环境的任何人那里获得一些实用建议。

评论标准:

  • 表现
  • 容量(即~并发用户数)
  • 稳定
0 投票
3 回答
228 浏览

multithreading - 研究 XMPP 应用程序的线程实现的好资源是什么?

据我了解,XMPP 协议基于始终在线的连接,您无法立即指示 XML 消息何时结束。

这意味着您必须在流来时对其进行评估。这也意味着,您可能必须处理异步连接,因为套接字可能会阻塞在 XML 消息的中间,原因可能是消息长度或连接速度慢。

我会很感激每个答案的一个来源,这样我们就可以修改它们,看看最喜欢的是什么。

0 投票
7 回答
5934 浏览

php - 与 Jabber/Aim 集成的简单网络“实时聊天”软件(LAMP 堆栈)

我过去曾多次寻找这个,但无济于事。我想要一个简单的php/ajax网络聊天界面,这是关键部分,它将IM client (Pidgin)通过 Jabber 或 Aim 与我的……交互。Plugoo几乎是我想要的,除了它是托管的,并且是基于 Flash 的。如果不理想,基于 Flash 的也可以,但托管则不是。

请注意,我不仅需要通知,而且我希望网站的用户单击“实时聊天”来获得聊天界面,并且我的 IM 客户端允许我与他们进行交互。

对于我们这些想要为不使用 IM 的客户提供实时支持的人来说,这非常方便。

0 投票
14 回答
2544 浏览

xmpp - jabber 服务器的其他潜在用途

除了明显的个人对个人即时消息聊天之外,您还使用 Jabber 服务器的功能启用了哪些功能?

编辑:真正展示它的工作代码的链接特别有用 - 并且更有可能被投票。

0 投票
4 回答
2057 浏览

performance - 尝试实现类似 XMPP 的协议的 IIS 性能问题

我们有一个客户端,它需要从服务器获取交互式消息,这些客户端分布在世界各地的各种防火墙后面,各种端口都关闭了。我们唯一可以依赖的是 HTTP 端口 80(和 HTTPS 443)。

该设计基本上以 XMPP(Jabber 协议)为蓝本,使用我们的客户端和 IIS。客户端向 .NET 处理程序发出 GET 请求;处理程序将请求保持打开一段时间以查找消息。如果有任何消息到达,它们会立即发送给客户端;如果不是,则在超时后,连接会以“无数据”响应关闭。客户端立即重新打开通信。

嗯,理论上。

实际发生的情况是,首先,IIS 不能同时处理超过 100 个请求——其他请求都在排队,并且在“已连接”和 IIS 识别到客户端调用之间可能会有几分钟的延迟。其次,大约一半的时间客户端超时,服务器没有任何响应(客户端超时比服务器长五分钟)。

POST 始终有效。在同一 Web 服务器上提供的其他数据可以正常工作。Web 服务在同一台服务器上工作。这是 Windows 2K3 Server 上的开箱即用安装。

是否有我们缺少的配置选项,或者我应该看看其他什么来解决这个问题?

谢谢。

0 投票
10 回答
49525 浏览

java - 服务器端的好 XMPP Java 库?

我希望用 Java 实现一个简单的 XMPP 服务器。

我需要的是一个可以解析和理解来自客户端的 xmpp 请求的库。我看过 Smack(下面提到)和 JSO。Smack 似乎只是客户端,因此虽然它可能有助于解析数据包,但它不知道如何响应客户端。JSO 是否维护它看起来很旧。唯一有希望的途径是拆开作为完整商业 (OSS) XMPP 服务器的 Openfire。

我只是希望在 Netty 或 Mina 之上有几行代码,这样我就可以开始处理一些在线消息。


乔——

那么我想要做的事情的答案有点长 - 我会尽量保持简短。

有两件事只是松散相关:

1)我想写一个 XMPP 服务器,因为我想为两个客户端编写一个自定义协议进行通信。基本上我正在考虑一个联网的 iPhone 应用程序 - 但我不想依赖低级二进制协议,因为使用 XMPP 之类的东西意味着应用程序可以从基于本地 wifi 的应用程序快速“成长”到基于互联网的应用程序...

交换的 msgs 应该是相对较低的延迟,所以严格来说二进制协议是最好的,但我觉得如果 XMPP 没有引入太多开销以便我可以使用它,然后从它的可扩展性中获益,那么它可能值得探索和以后的灵活性。

2) 我为 Terracotta 工作——所以我有一种疯狂的倾向,想把所有东西都聚集在一起。当我开始考虑编写一些自定义服务器代码时,我想我想对它进行集群。Terracotta 使扩展 Java POJO 变得微不足道,所以我的想法是构建一个超级简单的 XMPP 服务器作为 Terracotta 的演示应用程序。基本上每个用户都会通过 TCP 连接连接到服务器,这会将用户注册到哈希图中。每个用户都有一个 LinkedBlockingQueue,其中有一个侦听器线程从队列中获取消息。然后,任何想要向任何其他用户(例如任何旧的聊天应用程序)发送消息的连接用户只需通过连接向该用户发出 XMPP 消息(像往常一样)。服务器拾取它,在地图中查找相应的用户对象并将消息放入队列中。由于队列是聚集的,

所以 - 恐怕不是太短的总结。但这就是我想做的。我想我可以为 Openfire 编写一个插件来完成#1,但我认为它需要处理很多管道,所以很难做到#2(特别是因为我希望有非常少量的代码可以适合简单的 10-20kb Maven 项目)。

0 投票
5 回答
10632 浏览

delphi - Any complete library for Jabber in Delphi?

I'm looking for for a Jabber library for Delphi, I can see some COM based jabber components. But I'm looking for a real VCL library.

Somebody knows one?