sangoの使い方 -- C#編¶
これまでppatiernoさんが開発していたMQTTライブラリ m2mqtt がpahoに寄贈されました。
http://www.eclipse.org/paho/clients/dotnet/
このライブラリは以下の.Netプラットフォームに対応しています。
.Net Framework (4.5まで)
.Net Compact Framework 3.5 & 3.9 (for Windows Embedded Compact 7 / 2013)
.Net Micro Framework 4.2 & 4.3
Mono (for Linux O.S.)
WinRT platforms (Windows 8.1 and Windows Phone 8.1)
ただし、現時点ではMQTT 3.1.1には対応していません。(sangoは3.1にも対応 しています)
確認していませんが、このライブラリを使えばUnityでもMQTTが使えるかもしれませんね。
1. ライブラリのダウンロード¶
http://www.eclipse.org/paho/clients/dotnet/
からダウンロードできます。
ただし、 codeplexがNuGetで配布しておりますので、NuGetからダウンロード し たほうが簡単かと思います。(m2mqttで検索)
2. クライアントの実装¶
Connect¶
class MQTT
{
private MqttClient client;
public void Connect(string brokerHostname, int brokerPort,
string userName, string password)
{
// SSL使用時はtrue、CAを指定
client = new MqttClient(brokerHostname, brokerPort, false,
null);
// clientidを生成
string clientId = Guid.NewGuid().ToString();
client.Connect(clientId, userName, password);
}
uPLibrary.Networking.M2Mqtt.MqttClientをnewして、Connectします。 MqttClientでは、ホスト名だけを指定するなどのオーバーロードがあります。
Subscribe¶
// メッセージ到着時に呼び出されるメソッド
private void onReceive(object sender,
uPLibrary.Networking.M2Mqtt.Messages.MqttMsgPublishEventArgs e)
{
Console.WriteLine(e.Topic);
string msg = Encoding.UTF8.GetString(e.Message);
Console.WriteLine(msg);
}
public void Subscribe(string topic){
// callbackを登録
client.MqttMsgPublishReceived += this.onReceive;
client.Subscribe(new string[] { topic }, new byte[] {
MqttMsgBase.QOS_LEVEL_AT_MOST_ONCE });
}
client.MqttMsgPublishReceived
にメソッドを追加しておき、
Subscribe
します。
Publish¶
public void Publish(string topic, string msg)
{
client.Publish(
topic, Encoding.UTF8.GetBytes(msg),
MqttMsgBase.QOS_LEVEL_AT_MOST_ONCE, false); // retainが
false
}
Publish
をするだけです。
参照¶
- M2Mqtt Client
Comments
comments powered by Disqus