03-publish-c2b-qos2.cpp 937 B

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