Chúng tôi đang xem xét việc sử dụng MQTT làm giao thức nhắn tin trên một thiết bị mới mà chúng tôi đang xây dựng. Chúng tôi cũng muốn có giao diện web cho thiết bị. Có ai biết nếu bạn có thể thực hiện một ứng dụng trình duyệt của khách hàng (không có bổ sung bổ sung) mà nói MQTT?Trình duyệt web có thể sử dụng MQTT không?
Trả lời
Có, như đã đề cập trong bình luận của Steve-o MQTT thông qua websockets là rất có thể.
Có 2 lựa chọn tại thời điểm
- MQ IBM 7,5 đi kèm với hỗ trợ WebSockets, bạn có thể tìm thấy chi tiết here.
- Môi giới Mosquitto có trình khách javascript với ví dụ chạy here.
Để trả lời câu hỏi thứ hai lighttpd của bạn có mô-đun ổ cắm web có thể được sử dụng để chuyển tiếp đến nhà môi giới hiện có với các chi tiết here.
Tôi không thể tìm thấy bất kỳ thứ gì cho Apache không cần bạn viết thư viện của riêng bạn để thực hiện chuyển tiếp.
Liên kết sau cho biết nó xử lý MQTT và WebSockets cho Apache: https://github.com/willem4ever/mod_websocket_mosquitto Tôi đã không sử dụng nó bản thân mình và nghĩ rằng đó là một sự xấu hổ nó không phải là một giải pháp tổng quát hơn như mô-đun lighttpd, nhưng có bạn đi! – ralight
Tôi có thể thiết lập Mosquitto môi giới tại địa phương, hỗ trợ giao tiếp ổ cắm web? – rns
Câu hỏi này (và hầu hết các câu trả lời) đều trên 3 tuổi. Mọi thứ đã chuyển động đáng kể. Có từ phiên bản 1.4 trở đi Mosquitto cũng có thể được xây dựng với sự hỗ trợ Websocket – hardillb
Để mở rộng câu trả lời hardillbs:
Có một lựa chọn thứ ba bây giờ:
HiveMQ hỗ trợ WebSockets mẹ đẻ mà không cần bất kỳ máy chủ web bên ngoài. Nó hoạt động hoàn hảo với ứng dụng Javascript của Eclipse Paho.
Nếu bạn muốn thử nó ra, công chúng MQTTDashboard (trong đó sử dụng HiveMQ dưới mũ trùm) hỗ trợ WebSockets trên cổng 8000.
Tiết lộ: Tôi là một trong những nhà phát triển của HiveMQ
IBM đã phát hành một ứng dụng JavaScript dựa trên WebSockets. Nó là mã nguồn mở trên Eclipse Paho.
kho Git: http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.javascript.git/
Hướng dẫn ở đây. https://www.ibm.com/developerworks/community/blogs/c565c720-fe84-4f63-873f-607d87787327/entry/how_to_prog_javascript?lang=en
Không Apache, nhưng bạn có thể làm theo hướng dẫn này để cài đặt lighttpd với mod_websocket,
nhưng để dễ dàng sử dụng tôi khuyên bạn nên HiveMQ, như @Dominik khuyến cáo.
Chúng tôi đã có trải nghiệm tốt khi sử dụng WSS, WebSocket tới Cổng TCP (dành cho MQTT). Nó có nghĩa là chạy một tiến trình riêng biệt, nhưng điều đó không tránh phải thay đổi cấu hình của Apache. WSS cũng có hỗ trợ cho TLS.
blog by jpmens là điểm khởi đầu tốt để thiết lập mosquitto với tính năng websocket. Anh ấy là client javascript code based on Paho is on github.
blog "How to run your web server and MQTT WebSockets broker on the same por" này giải thích hai cách cho phía máy chủ:
- mosquitto với cấu hình http
- apache + mod_websocket_mosquitto
Tại sao không nodejs
+ socket.io
? Họ đi kèm với tất cả các tiện ích bao gồm (webscokets, pub/sub, webserver, mqtt broker ...). SocketCluster là một điểm khởi đầu tốt khác.
Liên kết này (Download codes) hữu ích. Tải xuống và sửa đổi tệp này mosq-mqttws31.html. Thay vì thư viện script java nhúng sử dụng này cdn
https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.js
và instantiation khách hàng nên khách hàng = new Paho.MQTT.Client ("test.mosquitto.org", 8080, "myclien256tiddd_" + parseInt (Math.random() * 100, 10));
Có, sử dụng ổ cắm web: http://mqtt.org/wiki/doku.php/mqtt_over_websockets –
Cảm ơn bạn đã biết thông tin. Vì vậy, loại máy chủ web nào cần thiết để hỗ trợ websockets? Chúng tôi sử dụng Apache 2 hiện tại. –
Bạn sẽ làm việc như thế nào với không có bộ nhớ ngoại tuyến. – user2223032