我正在尝试使用Openssl TLS连接到FCM XMPP服务器
我已经注册了一个项目,并且有一个服务器密钥和发件人ID。我遵循https://firebase.google.com/docs/cloud-messaging/auth-server#authorize_an_xmpp_connection中的说明
我所有的代码都是使用openssl的C语言编写的。
下面是my App Server与FCM-XMPP Server App Server到FCM-XMPP的通信:
<stream:stream to='fcm-xmpp.googleapis.com' version='1.0' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams'>从FCM-XMPP服务器:
<stream:stream from="fcm-xmpp.googleapis.com" id="E1204B9D567A6A8A" version="1.0" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client">
<stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>X-OAUTH2</mechanism><mechanism>X-GOOGLE-TOKEN</mechanism><mechanism>PLAIN</mechanism></mechanisms></stream:features>应用服务器到FCM-XMPP:
<auth mechanism='PLAIN' xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>base 64 encoding of <null>sendID@fcm-xmpp.googleapis.com<null>serverKey</auth>从FCM-XMPP服务器:
<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized/></failure>我有一个与GCM-XMPP服务器通信的应用服务器。我运行的基本上是相同的代码,我得到了
<success xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/>发布于 2019-06-13 13:29:20
到FCN-XMPP的app-server应该是:
<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='PLAIN'></auth>然后,服务器将使用空字符串进行响应。这就是现在发送编码数据的信号:
<response xmlns="urn:ietf:params:xml:ns:xmpp-sasl">encodedData</response>其encodedData应为以下内容的编码版本:
\0sendID@fcm-xmpp.googleapis.com\0serverKey
如果成功,您将收到成功标记。
至少所有这些都是我自己实现的客户端的情况。
https://stackoverflow.com/questions/56559145
复制相似问题