radarserver.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include "radarserver.h"
  2. RadarServer::RadarServer(QObject *parent, quint16 port) : QObject(parent)
  3. {
  4. m_pWebSocketServer = new QWebSocketServer(QStringLiteral("Radar Server"),
  5. QWebSocketServer::NonSecureMode,
  6. this);
  7. if (m_pWebSocketServer->listen(QHostAddress::Any, port))
  8. {
  9. qDebug() << "Radar Server listening on port" << port;
  10. connect(m_pWebSocketServer, &QWebSocketServer::newConnection,
  11. this, &RadarServer::onNewConnection);
  12. }
  13. }
  14. RadarServer::~RadarServer()
  15. {
  16. m_pWebSocketServer->close();
  17. qDeleteAll(m_clients.begin(), m_clients.end());
  18. }
  19. void RadarServer::onNewConnection()
  20. {
  21. QWebSocket *pSocket = m_pWebSocketServer->nextPendingConnection();
  22. connect(pSocket, &QWebSocket::textMessageReceived, this, &RadarServer::processMessage);
  23. connect(pSocket, &QWebSocket::disconnected, this, &RadarServer::socketDisconnected);
  24. m_clients << pSocket;
  25. }
  26. void RadarServer::processMessage(QString message)
  27. {
  28. bool *ok = new bool();
  29. int order = message.toInt(ok);
  30. if (ok)
  31. {
  32. qDebug() << order;
  33. emit SigRadarGen(order);
  34. }
  35. QWebSocket *pSender = qobject_cast<QWebSocket *>(sender());
  36. pSender->sendTextMessage(QString("111"));
  37. }
  38. void RadarServer::socketDisconnected()
  39. {
  40. QWebSocket *pClient = qobject_cast<QWebSocket *>(sender());
  41. if (pClient)
  42. {
  43. m_clients.removeAll(pClient);
  44. pClient->deleteLater();
  45. }
  46. }