m_pWebSocketServer(Q_NULLPTR),
m_clients()
{
- m_pWebSocketServer = new QWebSocketServer("SSL Echo Server", QWebSocketServer::SecureModeSecure,
+ m_pWebSocketServer = new QWebSocketServer(QStringLiteral("SSL Echo Server"),
+ QWebSocketServer::SecureMode,
this);
QSslConfiguration sslConfiguration;
QFile certFile(QStringLiteral("./localhost.cert"));
if (m_pWebSocketServer->listen(QHostAddress::Any, port))
{
qDebug() << "SSL Echo Server listening on port" << port;
- connect(m_pWebSocketServer, SIGNAL(newConnection()), this, SLOT(onNewConnection()));
+ connect(m_pWebSocketServer, &QWebSocketServer::newConnection,
+ this, &SslEchoServer::onNewConnection);
}
}
//! [constructor]
+SslEchoServer::~SslEchoServer()
+{
+ m_pWebSocketServer->close();
+ qDeleteAll(m_clients.begin(), m_clients.end());
+}
+
//! [onNewConnection]
void SslEchoServer::onNewConnection()
{
qDebug() << "Client connected:" << pSocket->peerName() << pSocket->origin();
- connect(pSocket, SIGNAL(textMessageReceived(QString)), this, SLOT(processMessage(QString)));
- connect(pSocket, SIGNAL(binaryMessageReceived(QByteArray)), this, SLOT(processBinaryMessage(QByteArray)));
- connect(pSocket, SIGNAL(disconnected()), this, SLOT(socketDisconnected()));
- //connect(pSocket, SIGNAL(pong(quint64)), this, SLOT(processPong(quint64)));
+ connect(pSocket, &QWebSocket::textMessageReceived, this, &SslEchoServer::processTextMessage);
+ connect(pSocket, &QWebSocket::binaryMessageReceived,
+ this, &SslEchoServer::processBinaryMessage);
+ connect(pSocket, &QWebSocket::disconnected, this, &SslEchoServer::socketDisconnected);
+ //connect(pSocket, &QWebSocket::pong, this, &SslEchoServer::processPong);
m_clients << pSocket;
}
//! [onNewConnection]
-//! [processMessage]
-void SslEchoServer::processMessage(QString message)
+//! [processTextMessage]
+void SslEchoServer::processTextMessage(QString message)
{
QWebSocket *pClient = qobject_cast<QWebSocket *>(sender());
if (pClient)
{
- pClient->write(message);
+ pClient->sendTextMessage(message);
}
}
-//! [processMessage]
+//! [processTextMessage]
//! [processBinaryMessage]
void SslEchoServer::processBinaryMessage(QByteArray message)
QWebSocket *pClient = qobject_cast<QWebSocket *>(sender());
if (pClient)
{
- pClient->write(message);
+ pClient->sendBinaryMessage(message);
}
}
//! [processBinaryMessage]