通过 XMPP 与 talk.google.com curl

标签 curl xmpp google-talk

我想使用 libcurl 用 C++ 编写一个简单的 google talk 客户端。Google talk 使用 XMPP 作为通信协议(protocol),它在talk.google.com:5222 上监听。首先,我尝试使用 curl 从命令行访问 google talk。如果我尝试

curl talk.google.com:5222 -d "<stream:stream to='gmail.com' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' version='1.0'>"

我收到响应 302“文档已移动”
如果我尝试使用 telnet 客户端
telnet talk.google.com 5222

我可以获得有效的 XMPP 响应
另外,如果我尝试访问 chat.facebook.com:
curl chat.facebook.com:5222 -d "<stream:stream to='chat.facebook.com'  xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' version='1.0'>"

我再次收到有效的 XMPP 响应,唯一的问题是 talk.google.com。

有人能指出我的错误吗?

最佳答案

“-d”选项将数据作为 HTTP POST 发送。 XMPP 基于原始套接字。因此,您必须使用一个选项来创建一个普通的持久套接字,例如 telnet(如果可用)。但我对curl不太熟悉。

关于通过 XMPP 与 talk.google.com curl ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13571324/

相关文章:

php - 更好的流程同时抓取大量数据

bash - 捕获curl子shell的输出?

shell - 如何在 cURL 中使 URL 的各个部分同时递增?

android - XMPP Openfire 连接被拒绝

android - 无法使用 smack-android :4. 1.4 接收群聊消息

xmpp - XMPP 客户端如何选择认证机制?

php - 当前未安装程序 'curl' 错误!但可以从 php 发出 curl 请求

dns - 什么是 XMPP 域名?

xmpp - GTalk 应用于 XMPP 消息的节流率是多少?

python - 为什么所有 twisted/wokkel xmpp 示例都忽略了 xmpp 协议(protocol)中 JID 的正确用法?