Qt5(5.7)Websockets在Windows Phone

时间:2016-10-14 23:34:50

标签: c++ qt windows-phone-8.1 qt5

你好亲爱的程序员, 我们尝试编写一个可以在windows phone和android上运行的应用程序。 这个应用程序的一部分是建立与websocket服务器的安全连接,这在Windows手机上不起作用。无论如何在Linux下工作都很完美。

//constructor opening connection
 MeteorDDP::MeteorDDP(QString uri){
   QUrl wsUri = QUrl("wss://"+uri+"/websocket");
   qDebug()<<wsUri;
      connect(&wsClient, &QWebSocket::textMessageReceived,this, &MeteorDDP::handleMessage);


 connect(&wsClient, &QWebSocket::connected,this, &MeteorDDP::onConnected);
   connect(&wsClient, &QWebSocket::stateChanged, this, &MeteorDDP::onStateChanged);
   connect(&wsClient, static_cast<void(QWebSocket::*)(QAbstractSocket::SocketError)>(&QWebSocket::error),
       [=](QAbstractSocket::SocketError error){
        qDebug()<<error<<"error";
   });
   connect(&wsClient, &QWebSocket::sslErrors, this, &MeteorDDP::onSslError);
       wsClient.open(wsUri);
       wsClient.flush();
    }

一个刚输出连接的方法:

void MeteorDDP::onConnected(){
    qDebug()<<"connected";
}

H档:

#ifndef METEORDDP_H
#define METEORDDP_H
#include <QString>
#include <QHash>
#include <QUrl>
#include <QtWebSockets/QtWebSockets>

class MeteorDDP : public QObject
{
    Q_OBJECT
public:
    MeteorDDP(QString server);
protected: 
 QWebSocket wsClient;
 void onConnected();
void onStateChanged(QAbstractSocket::SocketState state);
void onSslError(void);
void onError(QAbstractSocket::SocketError error);
}

方法:

void MeteorDDP::onStateChanged(QAbstractSocket::SocketState state){
    qDebug() <<state<<"state Changed";
}
void MeteorDDP::onError(QAbstractSocket::SocketError error){
     qDebug()<<error <<"error";
}
void MeteorDDP::onSslError(){
     qDebug() <<"ssl error";
}

0 个答案:

没有答案