03-publish-qos0.cpp 917 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #include <cstring>
  2. #include <mosquittopp.h>
  3. static int run = -1;
  4. static int sent_mid = -1;
  5. class mosquittopp_test : public mosqpp::mosquittopp
  6. {
  7. public:
  8. mosquittopp_test(const char *id);
  9. void on_connect(int rc);
  10. void on_publish(int mid);
  11. };
  12. mosquittopp_test::mosquittopp_test(const char *id) : mosqpp::mosquittopp(id)
  13. {
  14. }
  15. void mosquittopp_test::on_connect(int rc)
  16. {
  17. if(rc){
  18. exit(1);
  19. }else{
  20. publish(&sent_mid, "pub/qos0/test", strlen("message"), "message", 0, false);
  21. }
  22. }
  23. void mosquittopp_test::on_publish(int mid)
  24. {
  25. if(sent_mid == mid){
  26. disconnect();
  27. }else{
  28. exit(1);
  29. }
  30. }
  31. int main(int argc, char *argv[])
  32. {
  33. struct mosquittopp_test *mosq;
  34. int port = atoi(argv[1]);
  35. mosqpp::lib_init();
  36. mosq = new mosquittopp_test("publish-qos0-test");
  37. mosq->connect("localhost", port, 60);
  38. while(run == -1){
  39. mosq->loop();
  40. }
  41. delete mosq;
  42. delete mosq;
  43. mosqpp::lib_cleanup();
  44. return run;
  45. }