2015-06-03 18 views
28

Giá trị của MQTT qua WebSocket so với MQTT trực tiếp là gì?MQTT trực tiếp vs MQTT qua WebSocket

Tôi đang xem xét sử dụng MQTT trong dự án của mình và vì vậy tôi muốn biết tại sao một số người chọn MQTT trên WebSocket thay vì MQTT trực tiếp.

Trả lời

18

Bạn chỉ cần chạy MQTT trên websockets nếu bạn định xuất bản/đăng ký thư ngay từ trong ứng dụng web (trong trang).

Về cơ bản tôi sẽ chạy MQTT thuần túy cho mọi thứ và chỉ thêm các ổ cắm web nếu bạn thực sự cần nó.

Đối với tất cả ngôn ngữ trình duyệt không có thư viện máy khách MQTT chỉ sử dụng MQTT gốc. Đối với Javascript, có cả thư viện MQTT thuần túy và Paho trong thư viện trang sử dụng các websockets.

13

MQTT trên websockets là hoàn hảo nếu bao giờ một trang web nhất định là khách hàng gửi hoặc nhận MQTT.

Một bản tóm tắt tốt về khả năng của MQTT trên websockets có thể được tìm thấy here.

11

Có hai lý do chính để sử dụng MQTT qua Websockets (mà hiệu quả có nghĩa là đi qua HTTP/HTTPS):

  • ứng dụng Web (những người đang chạy trong một trình duyệt - ví dụ viết bằng JavaScript)
  • Bất kỳ ứng dụng khác không muốn sử dụng cổng 1883/8883 và muốn thay thế HTTP/HTTPS - điều này có thể là do ít khả năng bị chặn bởi tường lửa (ví dụ: trong mạng công ty), vì hầu hết tường lửa sẽ cho phép lưu lượng truy cập HTTP qua

Nếu bạn làm không cần hoặc lo lắng về việc trên, sử dụng "trực tiếp" MQTT:

  • nó là hiệu quả hơn
  • có nhiều thư viện client cho các ngôn ngữ khác nhau mà làm việc với "trực tiếp" MQTT
+1

Nói "mà hiệu quả có nghĩa là đi qua HTTP/HTTPS" là không hoàn toàn đúng. Websockets là thuận lợi bởi vì về cơ bản họ không sử dụng HTTP/HTTPS và chi phí được ngụ ý. Có một đọc qua (HTML5 WebSocket: Một bước nhảy vọt lượng tử trong khả năng mở rộng cho Web) [http://websocket.org/quantum.html] cho tất cả các chi tiết. – Sean

9

MQTT là một giao thức hỗ trợ sau đây:

  • Cung cấp xuất bản/đăng ký cơ chế
  • Chất lượng chính sách dịch vụ
  • Có chi phí tối thiểu trong giao tiếp
  • Thiết kế đặc biệt cho kênh truyền thông băng hẹp và
    thiết bị bị hạn chế.

Tùy thuộc vào thiết bị có sẵn triển khai.

Trình duyệt: Nó sử dụng ổ cắm web. Websocket cung cấp cho trình duyệt khả năng thiết lập giao tiếp song công hoàn chỉnh. Có thư viện Javascript để triển khai chức năng MQTT, xem Eclipse Paho JavaScript Client

Android: Thư viện khách của MQTT được viết bằng Java để phát triển ứng dụng trên Android.Xem Eclipse Paho Android Service

Vì vậy, tùy thuộc vào thiết bị sẽ sử dụng chức năng này. Để biết các tiêu chuẩn và thông số kỹ thuật, vui lòng truy cập MQTT Version 3.1.1

Hy vọng điều này sẽ hữu ích.

Chúc mừng!

3

MQTT trên ổ cắm web cũng hữu ích nếu ứng dụng đang chạy phía sau tường lửa chỉ cho phép lưu lượng 443 và 80. Và, bạn không có quyền kiểm soát các chính sách của tường lửa.

0

Với MQTT trên websockets, mọi trình duyệt có thể là thiết bị MQTT.

Do mô hình xuất bản/đăng ký của MQTT, bạn sẽ có được thời gian thực đẩy đến trình duyệt khi một sự kiện - theo nghĩa đen ở mọi nơi trên thế giới - xảy ra, miễn là bạn đăng ký đúng chủ đề.

Trong trường hợp MQTT qua WebSockets, kết nối ổ cắm web tạo thành một đường ống ngoài cho giao thức MQTT. Máy chủ/môi giới đặt gói MQTT vào một gói websockets và gửi nó đến máy khách/máy chủ. Máy khách/máy chủ giải nén gói MQTT từ gói websockets và sau đó xử lý nó như một gói MQTT bình thường.

enter image description here

Hơn nữa, nó có ảnh hưởng lớn đến internet của sự vật. Vui lòng đọc các tài liệu sau đây để biết thêm chi tiết.

SAP Cloud Platform Internet of Things

AWS IoT

MQTT over Websockets with HiveMQ

Các vấn đề liên quan