通过 XMPP 连接到 Google Cloud Connection Server ( http://developer.android.com/google/gcm/ccs.html ),以便向 Android 设备发送/接收通知。
在 .NET4.5 控制台应用程序中使用 AGSMMP(撰写本文时的最新版本)进行测试。
但是,在发送打开的 XML 之后立即关闭连接。我找不到任何解释。
发送的内容:
<stream:stream to='gcm.googleapis.com' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' xml:lang='en'>
请注意,在 Google 文档中,流是自关闭的<stream />
,因为 AGSSMPP 没有发送这个 - 不确定它是否有所作为。
使用wireshark,我可以看到消息是在一个流中发送的,谷歌用一个TCP重置来响应——然后连接被关闭。
xmpp = new XmppClientConnection
{
UseSSL = true,
UseStartTLS = true,
Server = "gcm.googleapis.com",
ConnectServer = "gcm.googleapis.com",
Port = 5235,
Username = "<SENDER ID>@gcm.googleapis.com",
Password = <KEY>,
AutoResolveConnectServer = false,
SocketConnectionType = SocketConnectionType.Direct,
KeepAlive = true,
};
xmpp.Open();
我假设即使其他设置不正确(例如登录),我至少应该能够通过此流消息并建立各种连接。