Qt-QWebSocket接続に成功したかどうかを判断

1071 ワード

QWebsocketを使用してserverを接続し、まずコンストラクション関数でスロット接続を行います.
HMWebSocket::HMWebSocket(QObject *parent) : QObject(parent)
{
    connect(&socketClient,SIGNAL(connected()),this,SLOT(onConnected()));
    connect(&socketClient,SIGNAL(disconnected()),this,SLOT(closed()));
    socketClient.ignoreSslErrors();
}

接続が完了したらopen()を呼び出しserverに接続し、
bool HMWebSocket::open(QString &ip,int port)
{
    QString path = QString("ws://%1:%2").arg(ip).arg(port);
    QUrl url = QUrl(path);
    socketClient.open(url);

    return true;
}

Openを呼び出すと、接続serverが成功したという意味ではなく、qtのsocketクラスは接続が成功したか否かを判断するis関数を提供していないが、clientとserverの接続が成功するとconnected信号がトリガーされるため、on
Connectedスロットが実行されると、接続が成功したことを意味します.
void HMWebSocket::onConnected()
{
    connect(&socketClient,&QWebSocket::textMessageReceived,this,&HMWebSocket::onTextMessageReceived);
//    socketClient.sendTextMessage("Hello word!");
    qDebug() << "hello word!";
}

「hello word」を印刷すると、接続が成功したことを意味します.