Làm cách nào để kết nối với mqtt trong python?
Eclipse Paho Python (mở cửa sổ mới) là một thư viện máy khách ngôn ngữ Python trong dự án Eclipse Paho, có thể kết nối với Nhà môi giới MQTT để xuất bản tin nhắn, đăng ký chủ đề và nhận tin nhắn đã xuất bản Show Cài đặt bằng công cụ quản lý gói PyPi Ví dụ sử dụng Paho PythonVí dụ này chứa mã hoàn chỉnh của Paho Python trong Python kết nối với EMQX Broker, gửi và nhận tin nhắn Bạn có thể sử dụng lớp máy khách như một thể hiện, trong một lớp hoặc bằng cách phân lớp. Quy trình sử dụng chung như sau Các cuộc gọi lại sẽ được gọi để cho phép ứng dụng xử lý các sự kiện khi cần thiết. Những cuộc gọi lại được mô tả dưới đây gọi lạion_connect()
Được gọi khi nhà môi giới phản hồi yêu cầu kết nối của chúng tôi khách hàngphiên bản máy khách cho cuộc gọi lại này dữ liệu người dùngdữ liệu người dùng riêng tư như được đặt trong Client() hoặc user_data_set() cờcờ phản hồi được gửi bởi nhà môi giới kết quả kết nối flags là một lệnh chứa các cờ phản hồi từ nhà môi giới. cờ [‘hiện tại phiên’] - cờ này hữu ích cho các khách hàng đangchỉ sử dụng phiên sạch được đặt thành 0. Nếu một khách hàng có phiên sạch = 0, kết nối lại với một nhà môi giới mà nó đã kết nối trước đó, cờ này cho biết liệu nhà môi giới có còn thông tin phiên cho khách hàng hay không. Nếu 1, phiên vẫn tồn tại Giá trị của rc cho biết thành công hay không
on_disconnect()
Được gọi khi client ngắt kết nối với broker khách hàngphiên bản máy khách cho cuộc gọi lại này dữ liệu người dùngdữ liệu người dùng riêng tư như được đặt trong Client() hoặc user_data_set() rckết quả ngắt kết nối Tham số rc cho biết trạng thái ngắt kết nối. Nếu MQTT_ERR_SUCCESS (0), cuộc gọi lại được gọi để phản hồi cuộc gọi ngắt kết nối (). Nếu bất kỳ giá trị nào khác thì việc ngắt kết nối là không mong muốn, chẳng hạn như có thể do lỗi mạng gây ra
on_message()
Được gọi khi một tin nhắn đã được nhận về một chủ đề mà khách hàng đăng ký và tin nhắn không khớp với cuộc gọi lại bộ lọc chủ đề hiện có. Sử dụng message_callback_add() để xác định cuộc gọi lại sẽ được gọi cho các bộ lọc chủ đề cụ thể. on_message sẽ đóng vai trò dự phòng khi không khớp khách hàngphiên bản máy khách cho cuộc gọi lại này dữ liệu người dùngdữ liệu người dùng riêng tư như được đặt trong Client() hoặc user_data_set() thông điệpmột phiên bản của MQTTMessage. Đây là một lớp học với chủ đề thành viên, trọng tải, qos, giữ lại
message_callback_add()Chức năng này cho phép bạn xác định các cuộc gọi lại xử lý các tin nhắn đến cho các bộ lọc đăng ký cụ thể, bao gồm cả các ký tự đại diện. Ví dụ, điều này cho phép bạn đăng ký cảm biến/# và có một lệnh gọi lại để xử lý cảm biến/nhiệt độ và một cuộc gọi khác để xử lý cảm biến/độ ẩm subbộ lọc đăng ký để khớp với cuộc gọi lại này. Chỉ một cuộc gọi lại có thể được xác định cho mỗi chuỗi con bằng chữ gọi lạicuộc gọi lại được sử dụng. Có cùng dạng với cuộc gọi lại on_message Nếu sử dụng message_callback_add() và on_message, chỉ những tin nhắn không khớp với bộ lọc đăng ký cụ thể mới được chuyển đến cuộc gọi lại on_message Nếu nhiều sub khớp với một chủ đề thì mỗi callback sẽ được gọi (e. g. cảm biến phụ/# và phụ +/độ ẩm đều khớp với thông báo có chủ đề cảm biến/độ ẩm, vì vậy cả hai lệnh gọi lại sẽ xử lý thông báo này) message_callback_remove()Xóa cuộc gọi lại chủ đề/đăng ký cụ thể đã đăng ký trước đó bằng message_callback_add() subbộ lọc đăng ký để loại bỏ on_publish()________số 8Được gọi khi một tin nhắn được gửi bằng lệnh gọi publish() đã hoàn thành việc truyền tới nhà môi giới. Đối với các tin nhắn có QoS mức 1 và 2, điều này có nghĩa là quá trình bắt tay thích hợp đã hoàn tất. Đối với QoS 0, điều này đơn giản có nghĩa là tin nhắn đã rời khỏi máy khách. Biến mid khớp với biến mid được trả về từ lệnh gọi publish() tương ứng, để cho phép theo dõi các tin nhắn gửi đi Cuộc gọi lại này rất quan trọng vì ngay cả khi cuộc gọi xuất bản () trả về thành công, điều đó không phải lúc nào cũng có nghĩa là tin nhắn đã được gửi on_subscribe()
Được gọi khi nhà môi giới trả lời yêu cầu đăng ký. Biến mid khớp với biến mid được trả về từ lệnh gọi subscribe() tương ứng. Biến Grant_qos là danh sách các số nguyên cung cấp mức QoS mà nhà môi giới đã cấp cho từng yêu cầu đăng ký khác nhau on_unsubscribe() 0Được gọi khi nhà môi giới trả lời yêu cầu hủy đăng ký. Biến mid khớp với biến mid được trả về từ lệnh gọi unsubscribe() tương ứng on_log() 1Được gọi khi client có thông tin log. Xác định để cho phép gỡ lỗi. Biến cấp độ cho biết mức độ nghiêm trọng của thông báo và sẽ là một trong MQTT_LOG_INFO, MQTT_LOG_NOTICE, MQTT_LOG_WARNING, MQTT_LOG_ERR và MQTT_LOG_DEBUG. Tin nhắn chính nó là trong buf Điều này có thể được sử dụng cùng lúc với ghi nhật ký Python tiêu chuẩn, có thể được bật thông qua phương thức enable_logger on_socket_open() 2Được gọi khi socket đã được mở. Sử dụng điều này để đăng ký ổ cắm với vòng lặp sự kiện bên ngoài để đọc on_socket_close() 3Được gọi khi socket sắp đóng. Sử dụng công cụ này để hủy đăng ký ổ cắm khỏi vòng lặp sự kiện bên ngoài để đọc on_socket_register_write() 4Được gọi khi thao tác ghi vào ổ cắm thành công sau khi nó đã thất bại trước đó. Sử dụng điều này để hủy đăng ký ổ cắm khỏi vòng lặp sự kiện bên ngoài để ghi URL nhà môi giới MQTT là gì?mqttManager. gây xúc động mạnh. mqttGiao thông vận tải. quản lýConfig. nhà môi giớiURL. tcp. //máy chủ cục bộ. 1883 .
Lệnh nào có thể được sử dụng để cài đặt thư viện MQTT Python?Tuy nhiên, Python sử dụng một lệnh PIP để cài đặt thư viện. Từ đó, tất cả các chương trình Python có thể nhập thư viện MQTT với đông.
MQTT có sử dụng địa chỉ IP không?MQTT sử dụng TCP/IP để kết nối với nhà môi giới. |