我这个 API 设计得怎么样?
void WebSocketRequestHandler::doGET()
{
if (path != QString::fromUtf8("/")) {
sendError(HttpStatus::NotFound);
return;
}
if (!switchToWebSocket()) {
sendError(HttpStatus::NotImplemented);
return;
}
endHeader();
WebSocketConnection conn(request, body, WebSocketConnection::Server);
WebSocketConnection::FrameType type;
while (true) {
const QByteArray &packet = conn.recv(&type);
if (packet.isEmpty()) {
qDebug() << "received empty packet.";
return;
}
qDebug() << type << packet;
if (!conn.send(packet)) {
qDebug() << "can not send echo packet.";
return;
}
}
}
int main()
{
TcpServer<WebSocketRequestHandler> httpd(HostAddress::AnyIPv4, 8000);
return httpd.serveForever() ? 0 : 1;
}
我发现大多数 C++ 的网络库都设计得很烦杂。
--
FROM 120.32.139.*