Có cần thiết phải tạo số ax của chủ đề MQTT cho x số thiết bị không?


9

Hiện tại trong dự án của tôi, trong đó bộ điều khiển (máy khách) gửi dữ liệu cảm biến đến máy chủ và nhận phản hồi từ máy chủ với một số dữ liệu bổ sung, sử dụng giao thức MQTT để liên lạc. Nó có 2 chủ đề riêng cho khách hàng và máy chủ.

Ví dụ:

Topic1 - Client (SUBSCRIBES), Server ( PUBOUNDES )
Topic2 - Client (PUBOUNDES), Server (SUBSCRIBES)

Nhưng nếu dự án này là trường hợp sử dụng của một ứng dụng lớn hơn, giả sử khoảng 5000 thiết bị cần được cài đặt ở đâu đó.

Vì vậy, sẽ cần thiết để tạo 5000 chủ đề khác nhau cho cả máy khách và máy chủ? Hoặc với các chủ đề ít hơn nó có thể được thực hiện và làm thế nào?


1
Tại sao bạn nghĩ rằng đó là một vấn đề để có nhiều chủ đề?
hardillb

1
Có lẽ bởi vì phần mềm sẽ phải quản lý tất cả.
Mawg nói rằng phục hồi Monica

1
@hardillb Đó không phải là vấn đề ... chỉ là tò mò ... nhưng một chủ đề MQTT có thể có một chủ đề phụ không?
ron123456

2
Chắc chắn, các chủ đề được phân cấp, vì vậy bất kỳ sơ đồ có thể được nghĩ ra. Sparkplug s3.amazonaws.com/cirrus-link-com/ Kẻ có một vài chủ đề cho mỗi nút cạnh và thiết bị phía sau nút cạnh.
Hỗ trợ Gambit

Câu trả lời:


5

Từ máy khách đến máy chủ, bạn có thể đóng gói id khách hàng vào tải trọng, ví dụ: nếu là JSON, một trong các khóa có thể có giá trị id khách hàng.

Phản hồi từ máy chủ đến máy khách phải chứa id khách hàng để người môi giới không phát tin nhắn mà gửi trực tiếp đến một máy khách được kết nối.

Đồng thời, bạn có thể đăng ký máy chủ của mình vào một cái gì đó như: "request / +" và mỗi khách hàng sẽ xuất bản thành "request / {client-id-1}", "request / {client-id-2}" và máy chủ sẽ nhận được cả hai chỉ với một thuê bao.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.