问题标签 [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 投票
2 回答
33470 浏览

python - 使用 python 库发送 xmpp 消息

如何使用以下 Python 库之一发送 XMPP 消息:wokkel、xmpppy 或 jabber.py?

我想我知道伪代码,但到目前为止还没有能够正确运行。这是我到目前为止所尝试的:

  • 调用一些 API 并传递服务器名称和端口号以连接到该服务器。
  • 调用一些 API 并传递用户名、密码来构造一个 JID 对象。
  • 使用该 JID 进行身份验证。
  • 构造一个 Message 对象并调用一些 API 并在参数中传递该消息 obj。
  • 调用一些发送 API。

这在概念上似乎很容易,但魔鬼在细节的某个地方。如果可能,请显示示例代码段。

0 投票
5 回答
4149 浏览

java - 此类使用 AtomicBooleans。它是线程安全的吗?

我不喜欢用synchronized(this)锁定我的代码,所以我正在尝试使用AtomicBooleans。在代码片段中,XMPPConnectionIF.connect()建立到远程服务器的套接字连接。请注意,变量_connecting仅在connect()方法中使用;而_connected用于需要使用_xmppConn的所有其他方法。我的问题列在下面的代码片段之后。

  1. 根据我的代码,如果 2 个线程同时尝试调用connect() ,那么线程安全是否允许只允许一次连接尝试。

  2. 在 finally 块中,我连续执行了两个 AtomicBoolean.set(..) ,会不会有问题,因为在这两个原子调用之间的间隙期间,一些线程可能会在其他方法中调用_connected.get() ?

  3. 使用_xmppConn时,我应该做一个synchronized( _xmppConn )吗?

更新在方法中添加了缺少的登录调用。

0 投票
2 回答
351 浏览

protocols - jabber协议问题

我的jabber机器人的联系人之一,

其 'subscription' 属性值为 'to',

根据jabber协议意味着:

****机器人已经订阅了对方的在线状态,但是对方没有订阅我的机器人。****

但是当我登录对方账号时,

我可以看到机器人在线,

为什么会这样?

jabber协议现在乱了吗?

0 投票
3 回答
1229 浏览

windows - 使用 Jabber 发送网络消息

(也在ServerFault上问过,我也被建议在这里发布)

当其他用户在线提交报告内容时,我们需要通过网络向各种用户(合规、生产)发送桌面警报。

目前我们正在使用 NET SEND,但这并不能保证交付,并且从客户端和服务器的角度来看都证明是不可靠的(我猜在更高版本的 Windows 中将不支持;我们目前正在运行 XP)。

我们正在考虑基于 Jabber 的解决方案,但是否有人使用 Jabber 客户端像 NET SEND 那样在屏幕上弹出警报消息,而不是仅仅将聊天窗口置于最前面或在系统附近显示临时“祝酒词”消息托盘。

我们需要警报消息是持久的,并且只被用户关闭,表明他们已经看到它。Toast 风格的弹出窗口会很好,只要它不仅在有限的时间内并且必须再次被用户关闭。

有什么解决办法吗?

0 投票
1 回答
210 浏览

xmpp - 如何在 Openfire 中关闭已注册传输的自动登录?

这是关于 Openfire 中的网关 XEP 0100 支持。

我注意到对于某些传输,一旦与 openfire 的连接成功(通过 xmpp 用户),它们就会自动登录。这特别适用于QQ。如何关闭此自动登录功能?基本上从客户的角度来看,我希望能够有选择地登录。因此,当我为 openfire 创建一个 XMPPConnection 时,所有传输都应保持签名状态,直到我将定向存在发送到传输。

0 投票
3 回答
1575 浏览

java - 在 Java 中为自己的 IM 服务器/服务寻找简单的即时消息协议

我正在考虑用 Java 实现一个简单的即时消息服务器,但我不想创建另一个协议,而是使用一个已经很简单的 IM 协议。但我不知道我应该使用哪种协议。

我想使用现有的 IM 协议的原因是我希望我的“用户”能够使用他们自己的客户端,例如 pidgin - 它已经提供了广泛的协议,例如 XMPP、Simple 、Bonjour 等——而且我不必开发任何客户。

我看起来有点像 XMPP,但因为很多工作将该协议嵌入到新服务器中。也许还有其他更容易使用的协议?

我的问题是,你们对 Java 中真正基础且易于使用的协议有什么建议吗?Pidgin 支持一大堆协议,但哪些协议与我相关?

0 投票
4 回答
3845 浏览

xmpp - Jabber 使用随机名称自动登录

我正在使用JSJaCejabberd构建实时聊天。除了为所有网站访问者提供帐户“访客”之外,一切正常。如果两个访问者尝试同时进行实时聊天,则响应会变得混乱或第一个用户已注销。

我可以随机设置客人姓名,但我需要检查该姓名是否已注册或自动注册,并希望它之前没有注册过。我尝试将每个登录名分配给一个随机资源名称,但这仍然合并了对话。

简而言之,我正在寻找最简单的方法来允许多个匿名登录开始与 livechat 帐户的个人对话。如果实时聊天可以在主要实时聊天帐户处于聊天状态时轮询到不同的用户,那就更好了(但可选)。

该解决方案可以是基于 Web 客户端或服务器的,我不在乎,因为我控制了两者(并且 ejabberd 支持各种模块)。

顺便说一句,当我尝试自动注册注册帐户时,JSJaC simpleclient 演示返回:

我还没有确定这是否可以忽略或使用自定义客户端或服务器设置覆盖。我想我可以检测到这个错误并在没有自动注册的情况下重试,但我想听听更好/更简单的选择。

0 投票
2 回答
3610 浏览

chat - 哪个更好?长 TCP 连接还是长轮询?

我打算在我的网站上建立一个网络聊天。我知道这样做的两种方式:一种是使用XMPP Web客户端(通过flash,长TCP连接),另一种是facebook方式,长轮询。

但是 facebook 将更新他们的聊天以支持 Jabber (XMPP),那么有人能告诉我们哪种方式更好吗?(包括升级到 XMPP)

0 投票
1 回答
2864 浏览

c# - C# 客户端到客户端消息传递

我将尝试准确地解释我首先想要实现的目标。

想象一下,两个用户正在使用一个 Windows 窗体应用程序,当用户 A 打开一个特定的窗体时,会将一个锁应用于窗体底层的数据记录,以便当时只有该用户可以进行更改。

用户 B 有一个所有记录的列表(在网格中),其中包含对用户 A 已经打开的记录的引用。我们想要做的是当用户 A 打开记录时,用户 B 的记录列表被更新以显示行旁边的锁定图标表示该记录正在使用中。

这是我们处理消息传递的一个简单示例,但您明白了,用户 A 做了用户 B 需要知道的事情。

我已经使用 Jabber-net for C# 和 OpenFire Jabber Server 实现了一个系统。基本上,当要发送消息时,会在数据库的消息表中插入一个新行。消息表由使用 SqlDependancy 对象的服务客户端监视,因此当新消息准备好时,服务构建相关消息并通过 Jabber 和 OpenFire 服务器将其发送到所需的客户端。

这工作正常,但是 OpenFire 的开箱即用功能是支持即时消息,这显然不是我想要实现的。我遇到的问题是,如果用户登录到两个应用程序上下文(即测试和实时),OpenFire 不知道要向哪一个发送消息,因为 user@server/resource 的 JID 结构不会注意到资源。

基本上我目前使用 OpenFire 和 Jabber-net 的方式不太正确。

是否有一种模式可以用来实现我想要实现的目标,即向客户端发送消息,告诉它做某事,同时能够指定您也发送消息的客户端。XMPP 似乎是答案,因为我可以构建自己的要解析的消息类型。

我的应用程序是一个 Windows 窗体、.NET 3.5 C# 应用程序。

0 投票
1 回答
10783 浏览

java - 最好的 java jabber 客户端库

您对 java jabber 库有什么好的/坏的体验?