このエントリーをはてなブックマークに追加

sangoの使い方 - Ruby編

Rubyからsangoを使う方法について説明します。

Rubyでsangoを使うには以下の手順で行います。

  1. gemのインストール
  2. クライアントの実装

確認した環境

  • ruby 2.0.0
  • gem 2.0.14
  • ruby-mqtt 0.3.0

1. gemのインストール

gem install mqtt

これにより、ruby-mqttがインストールされます。

2. クライアントの実装

MQTT::Client.new(Hostname, ...)でMQTTクライアントのインスタンスを作成し、connectを実行すれば接続します。

connect後はgetでSubscribeを行ったり、publishでPublishを行ったりできます。

Connect

connect部分はPub/Subともに共通です。

#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

require 'rubygems'
require 'mqtt'

MQTTHOST = "free.mqtt.shiguredo.jp"
USERNAME = "example@github"
PASSWORD = "<password>"

# MQTTに接続するためのクライアントを作成します
client = MQTT::Client.new(
  MQTTHOST,
  :username => USERNAME,
  :password => PASSWORD
)

Subscribe

# 接続します
client.connect do |c|
  # Subscribeします
  TOPIC = "shirou@github/#"
  c.get(TOPIC) do |topic, message|
    puts "#{topic}: #{message}"
  end
end

Publish

# 接続します
client.connect do |c|
  # Publishします
  TOPIC = "shirou@github/a/b"
  c.publish(TOPIC, "message from ruby")
end