main.cpp 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. // Qt lib import
  2. #include <QImage>
  3. #include <QJsonObject>
  4. #include <QtCore>
  5. // JQLibrary import
  6. #include "JQHttpServer.h"
  7. #include "JQNet.h"
  8. void startUp(const QPointer<JQHttpServer::Session>& session)
  9. {
  10. const auto&& reply = JQNet::HTTP::get("http://127.0.0.1:7998/api/request/startUp");
  11. qDebug() << reply.first << reply.second;
  12. QJsonObject obj;
  13. if (reply.first) {
  14. obj["code"] = 0;
  15. } else {
  16. obj["code"] = -2;
  17. obj["msg"] = "time out";
  18. }
  19. session->replyJsonObject(obj);
  20. }
  21. void login(const QPointer<JQHttpServer::Session>& session)
  22. {
  23. const auto&& reply = JQNet::HTTP::get("http://127.0.0.1:7998/api/request/login");
  24. qDebug() << reply.first << reply.second;
  25. QJsonObject obj;
  26. if (reply.first) {
  27. obj["code"] = 0;
  28. } else {
  29. obj["code"] = -2;
  30. obj["msg"] = "time out";
  31. }
  32. session->replyJsonObject(obj);
  33. }
  34. void startChat(const QPointer<JQHttpServer::Session>& session)
  35. {
  36. QString targetId = session->requestUrlQuery()["targetId"];
  37. QString url = "http://127.0.0.1:7998/api/request/startChat?";
  38. url.append("targetId=" + targetId);
  39. const auto&& reply = JQNet::HTTP::get(url);
  40. qDebug() << reply.first << reply.second;
  41. QJsonObject obj;
  42. if (reply.first) {
  43. obj["code"] = 0;
  44. } else {
  45. obj["code"] = -2;
  46. obj["msg"] = "time out";
  47. }
  48. session->replyJsonObject(obj);
  49. }
  50. void logoutLinkdood(const QPointer<JQHttpServer::Session>& session)
  51. {
  52. QString token = session->requestUrlQuery()["token"];
  53. QString server = session->requestUrlQuery()["server"];
  54. QString url = "http://127.0.0.1:7998/api/request/logoutLinkdood?";
  55. url.append("token=" + token);
  56. url.append("&server=" + server);
  57. const auto&& reply = JQNet::HTTP::get(url);
  58. qDebug() << reply.first << reply.second;
  59. QJsonObject obj;
  60. if (reply.first) {
  61. obj["code"] = 0;
  62. } else {
  63. obj["code"] = -2;
  64. obj["msg"] = "time out";
  65. }
  66. session->replyJsonObject(obj);
  67. }
  68. void exitLinkdood(const QPointer<JQHttpServer::Session>& session)
  69. {
  70. const auto&& reply = JQNet::HTTP::get("http://127.0.0.1:7998/api/request/exitLinkdood");
  71. qDebug() << reply.first << reply.second;
  72. QJsonObject obj;
  73. if (reply.first) {
  74. obj["code"] = 0;
  75. } else {
  76. obj["code"] = -2;
  77. obj["msg"] = "time out";
  78. }
  79. session->replyJsonObject(obj);
  80. }
  81. int main(int argc, char* argv[])
  82. {
  83. QCoreApplication a(argc, argv);
  84. // 设置最大处理线程数
  85. JQHttpServer::TcpServerManage tcpServerManage(10);
  86. tcpServerManage.setHttpAcceptedCallback([](const QPointer<JQHttpServer::Session>& session) {
  87. // 回调发生在新的线程内,不是主线程,请注意线程安全
  88. qDebug() << Q_FUNC_INFO << session->requestUrlPath() << "," << session->requestBody() << ","
  89. << session->requestUrl();
  90. if (session->requestUrlPath() == "/api/request/startUp") {
  91. startUp(session);
  92. } else if (session->requestUrlPath() == "/api/request/login") {
  93. login(session);
  94. } else if (session->requestUrlPath() == "/api/request/startChat") {
  95. startChat(session);
  96. } else if (session->requestUrlPath() == "/api/request/logoutLinkdood") {
  97. logoutLinkdood(session);
  98. } else if (session->requestUrlPath() == "/api/request/exitLinkdood") {
  99. exitLinkdood(session);
  100. } else if (session->requestUrlPath() == "/api/time") {
  101. qDebug() << QDateTime::currentDateTime();
  102. qDebug() << session->requestUrlQuery();
  103. } else {
  104. QJsonObject obj;
  105. obj["code"] = -1;
  106. obj["msg"] = "invalid url.";
  107. session->replyJsonObject(obj);
  108. }
  109. });
  110. qDebug() << "listen:" << tcpServerManage.listen(QHostAddress::Any, 3333);
  111. return a.exec();
  112. }