为什么使用XMPP多次发送聊天时会出现“服务不可用”?
我用Python和C#做了一个简单的即时通讯客户端,分别用了几种不同的XMPP库。
它们在作为简单的自动回复器或者小机器人时运行得很好,但当我把它们变成聊天室(也就是说,消息会发送给多个用户)时,我突然开始收到来自Google聊天服务器的503服务不可用的错误。
我应该从哪里开始查找解决这个问题的方法呢?考虑到我使用了几种语言和库,我觉得这不是我特定设置的问题。我使用的是这些库提供的各种示例。
2 个回答
1
如果你想创建真正的聊天室,为什么不考虑使用一个 Jabber 服务器来托管这些聊天室呢?你可以参考这个链接 http://xmpp.org/extensions/xep-0045.html,ejabberd 这个服务器默认就支持这个功能,而且大多数 Jabber 服务器都有插件可以实现这些功能。然后,你可以让你的机器人加入这个聊天室(大部分聊天软件都支持这个功能,不过可惜 Google Talk 不支持)。
2
你有没有把所有想要发送消息的人都加到你的联系人列表里?如果没有,GTalk就不会发送消息,而是会返回错误503。
之前有个关于Pidgin的bug跟这个问题类似,可以在这里查看: Pidgin #4236
如果你确定你的联系人列表里有所有人的信息,那你还需要检查一下同时发送的消息数量。谷歌会限制一个联系人在一定时间内可以发送的消息数量。