QWebSocketServer
| Module | WebSockets |
|---|---|
| Include |
|
| CMake |
|
| QMake |
|
QCoro provides a wrapper for the QWebSocketServer class which allows
user to asynchronously co_await incoming connections. To wrap a QWebSocketServer instance, use
the qCoro() overload from the QCoroWebSocketServer include header.
QCoroWebSocketServer qCoro(QWebSocketServer &);
QCoroWebSocketServer qCoro(QWebSocketServer *);
nextPendingConnection()
Suspends the awaiter until a new incoming connection becomes available or until the specified timeout.
If the specified timeout is -1, the operation will never time out.
Returns a pointer to QWebSocket representing the new connection, or a null pointer if the operation
times out, the server is not listen()ining for incoming connections.
QCoro::Task<QWebSocket *> QCoroWebSocketServer::nextPendingConnection(std::chrono::milliseconds timeout);
Note that pauseAccepting() doesn't resume any awaiting
coroutines.
QCoro::Task<> listen(QWebSocketServer *server) {
server->listen();
while (auto socket = std::unique_ptr<QWebSocket>(co_await qCoro(server).nextPendingConnection());
socket != nullptr)
{
handleConnection(std::move(socket));
}
}