MST
星途 面试题库

面试题:Ruby与物联网设备交互之基础通信

假设你要通过Ruby与一个支持MQTT协议的物联网设备进行通信,简述如何使用Ruby的MQTT库(如mqtt-ruby)来建立连接并订阅一个主题。请给出关键代码片段。
37.9万 热度难度
编程语言Ruby

知识考点

AI 面试

面试题答案

一键面试
  1. 安装mqtt-ruby库: 在Gemfile中添加gem 'mqtt',然后运行bundle install,或者直接运行gem install mqtt
  2. 关键代码片段
require 'mqtt'

# 建立连接
client = MQTT::Client.connect(
  host: 'your_mqtt_broker_host',
  port: 1883,
  username: 'your_username',
  password: 'your_password'
)

# 订阅主题
client.subscribe('your_topic') do |topic, message|
  puts "Received message on topic #{topic}: #{message}"
end

# 保持连接
client.loop_forever

在上述代码中:

  • MQTT::Client.connect方法用于建立与MQTT代理的连接,其中host指定代理的主机,port指定端口(默认为1883),usernamepassword是可选的认证信息。
  • client.subscribe方法用于订阅指定的主题,块中的代码会在接收到该主题的消息时执行。
  • client.loop_forever方法用于保持连接并持续接收消息。实际使用中,可能需要处理异常、配置更多连接参数等。