为啥在使用 XMPP 时多次发送聊天时会出现“服务不可用”?

Posted

技术标签:

【中文标题】为啥在使用 XMPP 时多次发送聊天时会出现“服务不可用”?【英文标题】:Why do I get 'service unavailable' with multiple chat sends when using XMPP?为什么在使用 XMPP 时多次发送聊天时会出现“服务不可用”? 【发布时间】:2009-08-24 17:29:05 【问题描述】:

我用 Python 和 C# 制作了一个简单的 IM 客户端,分别使用了几个不同的 XMPP 库。

它们作为简单的自动回复或微不足道的机器人工作得很好,但是当我将它们变成聊天室时(即,一条消息被反映到许多其他 JID),我突然开始从 Google 谈话服务器收到 503 服务不可用响应.

我应该从哪里着手解决这个问题?鉴于我使用了多种语言和库,我认为这不是我的特定设置的问题。我正在使用库提供的各种示例。

【问题讨论】:

【参考方案1】:

您的公鸡中是否有所有您尝试向其发送消息的人? 否则 GTalk 将不允许发送消息,而是返回错误 503。

有一个 pidgin 错误跟踪器描述了类似的问题: Pidgin #4236

如果您确定公鸡中有所有 JID,您还应该检查并行发送的消息数量。谷歌将限制单条消息的数量 允许JID在指定时间段内发送。

【讨论】:

【参考方案2】:

如果您想创建真正的聊天室,何不让 jabber 服务器来托管这些聊天室(遵循http://xmpp.org/extensions/xep-0045.html - ejabberd 将这些作为默认设置,并且大多数 jabber 服务器都有插件来实现它们),然后让您的机器人加入那个房间(大多数客户支持这一点 - 不幸的是,Google Talk 不支持)?

【讨论】:

以上是关于为啥在使用 XMPP 时多次发送聊天时会出现“服务不可用”?的主要内容,如果未能解决你的问题,请参考以下文章

在黑莓上验证 Facebook 聊天时遇到问题

XMPP 聊天发送/接收消息同步

XMPP

在可可应用程序中使用 xmpp 发送任何文件。是不是可以?

如何在使用 Smack 发送聊天时检测错误

为啥 XMPP 消息有时会在移动设备上丢失