bridge.rst 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. .. _bridge::
  2. ======
  3. Bridge
  4. ======
  5. -------------
  6. emqttd Bridge
  7. -------------
  8. Two or more emqttd brokers could be bridged together. Bridges forward MQTT messages from one broker node to another::
  9. --------- --------- ---------
  10. Publisher --> | node1 | --Bridge Forward--> | node2 | --Bridge Forward--> | node3 | --> Subscriber
  11. --------- --------- ---------
  12. Configure Bridge
  13. ----------------
  14. Suppose that we create two emqttd brokers on localhost:
  15. +---------+---------------------+-----------+
  16. | Name | Node | MQTT Port |
  17. +---------+---------------------+-----------+
  18. | emqttd1 | emqttd1@127.0.0.1 | 1883 |
  19. +---------+---------------------+-----------+
  20. | emqttd2 | emqttd2@127.0.0.1 | 2883 |
  21. +---------+---------------------+-----------+
  22. Create a bridge that forwards all the 'sensor/#' messages from emqttd1 to emqttd2.
  23. 1. Start Brokers
  24. ................
  25. .. code:: console
  26. cd emqttd1/ && ./bin/emqttd start
  27. cd emqttd2/ && ./bin/emqttd start
  28. 2. Create bridge: emqttd1--sensor/#-->emqttd2
  29. .............................................
  30. .. code:: console
  31. $ cd emqttd1 && ./bin/emqttd_ctl bridges start emqttd2@127.0.0.1 sensor/#
  32. bridge is started.
  33. $ ./bin/emqttd_ctl bridges list
  34. bridge: emqttd1@127.0.0.1--sensor/#-->emqttd2@127.0.0.1
  35. 3. Test the bridge
  36. ...................
  37. .. code:: console
  38. #emqttd2
  39. mosquitto_sub -t sensor/# -p 2883 -d
  40. #emqttd1
  41. mosquitto_pub -t sensor/1/temperature -m "37.5" -d
  42. 4. Delete the bridge
  43. .....................
  44. .. code:: console
  45. ./bin/emqttd_ctl bridges stop emqttd2@127.0.0.1 sensor/#
  46. -----------------
  47. emqttd Bridge CLI
  48. -----------------
  49. .. code:: console
  50. #query bridges
  51. ./bin/emqttd_ctl bridges list
  52. #start bridge
  53. ./bin/emqttd_ctl bridges start <Node> <Topic>
  54. #start bridge with options
  55. ./bin/emqttd_ctl bridges start <Node> <Topic> <Options>
  56. #stop bridge
  57. ./bin/emqttd_ctl bridges stop <Node> <Topic>
  58. -----------------
  59. mosquitto Bridge
  60. -----------------
  61. Bridge mosquitto to emqttd broker::
  62. ------------- -----------------
  63. Sensor ----> | mosquitto | --Bridge--> | |
  64. ------------- | emqttd |
  65. ------------- | Cluster |
  66. Sensor ----> | mosquitto | --Bridge--> | |
  67. ------------- -----------------
  68. mosquitto.conf
  69. --------------
  70. Suppose that we start an emqttd broker on localost:2883, and mosquitto on localhost:1883.
  71. A bridge configured in mosquitto.conf::
  72. connection emqttd
  73. address 127.0.0.1:2883
  74. topic sensor/# out 2
  75. # Set the version of the MQTT protocol to use with for this bridge. Can be one
  76. # of mqttv31 or mqttv311. Defaults to mqttv31.
  77. bridge_protocol_version mqttv311
  78. -------------
  79. rsmb Bridge
  80. -------------
  81. Bridge RSMB to emqttd broker, same settings as mosquitto.
  82. broker.cfg::
  83. connection emqttd
  84. addresses 127.0.0.1:2883
  85. topic sensor/#