Как установить соединение с сервером Google Firebase XMPP?

Я пытаюсь установить соединение с сервером FCM XMPP в C ++ с помощью Swifter. Но после первого запроса сервер отправляет мне неизвестные данные, а библиотека отключает меня с помощью XMLError.
Подобно,

клиент: <?xml version="1.0"?><stream:stream xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" to="gcm.googleapis.com" version="1.0">
сервер: \ x15 \ x03 \ x01 \ x00 \ x02 \ x02 \ x46
Настройки, которые я использую:

SimpleEventLoop eventLoop;
BoostNetworkFactories networkFactories(&eventLoop);

ClientOptions co;
co.manualPort = 5236;
co.manualHostname = "fcm-xmpp.googleapis.com";
co.useTLS = ClientOptions::UseTLS::RequireTLS;
co.sessionShutdownTimeoutInMilliseconds = 2000;

Client client("<myid>@gcm.googleapis.com", "mypass", &networkFactories);

client.setAlwaysTrustCertificates();

client.onDataRead.connect([&] (const SafeByteArray &smt) {
std::cout << "onDataRead" << std::endl;
for (auto &c : smt) {
std::cout << std::hex << (int)c << " ";
}
std::cout << std::endl;
std::cout << std::string(smt.begin(), smt.end()) << std::endl;
});

client.onDataWritten.connect([&] (const SafeByteArray &smt) {
std::cout << "onDataWritten" << std::endl;
std::cout << std::string(smt.begin(), smt.end()) << std::endl;
});

client.onDisconnected.connect([&] (const boost::optional<ClientError> &smt) {
std::cout << "onDisconnected" << std::endl;
std::cout << smt.value() << std::endl;
client.connect(co);
});

client.connect(co);
eventLoop.run();

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]