20
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

UnityでMQTTライブラリを使って、Milkcocoaに接続、さらにiPadでも動かす

Last updated at Posted at 2016-01-23

はじめに

UnityにMQTTライブラリを導入して、Milkcocoaに接続します。最後にiPadで動作確認します。

今回使うMQTTライブラリ:https://github.com/vovacooper/Unity3d_MQTT

#導入

まず、こちらのURLからzipでプロジェクトごとダウンロードし、解凍します。

スクリーンショット 2016-01-24 2.21.54.png

Import PackageからCustom Packageを選び、ダウンロードしたpackageファイルを選択します。

スクリーンショット 2016-01-24 2.24.33.png

次に、ProjectタブのAssetsの中からMQTTをドラッグして、左上のHierarchy内に持ってきます。このオブジェクトにはMqtt TestというScriptが紐付いているので。Mqtt Test Scriptを編集します。{app-id}のところは、MilkcocoaのAppIDです。自分のAppIDに置き換えてください。Milkcocoaでアカウント登録後、アプリを作るとAppIDが発行されます。

using UnityEngine;
using System.Collections;
using System.Net;
using uPLibrary.Networking.M2Mqtt;
using uPLibrary.Networking.M2Mqtt.Messages;
using uPLibrary.Networking.M2Mqtt.Utility;
using uPLibrary.Networking.M2Mqtt.Exceptions;

using System;

public class mqttTest : MonoBehaviour {
	private MqttClient client;
	// Use this for initialization
	void Start () {
		// create client instance 
		client = new MqttClient("{app-id}.mlkcca.com", 1883 , false , null ); 
		
		// register to message received 
		client.MqttMsgPublishReceived += client_MqttMsgPublishReceived; 
		
		string clientId = Guid.NewGuid().ToString(); 
		client.Connect(clientId, "sdammy", "{app-id}"); 
		
		// subscribe to the topic "/home/temperature" with QoS 2 
		client.Subscribe(new string[] { "{app-id}/unity/send" }, new byte[] { MqttMsgBase.QOS_LEVEL_AT_MOST_ONCE }); 

	}
	void client_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e) 
	{ 

		Debug.Log("Received from Milkcocoa: " + System.Text.Encoding.UTF8.GetString(e.Message)  );
	} 

	void OnGUI(){
		if ( GUI.Button (new Rect (20,40,100,30), "Hello")) {
			Debug.Log("sending...");
			client.Publish("{app-id}/unity/send", System.Text.Encoding.UTF8.GetBytes("{\"message\":\"Hello\"}"), MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false);
			Debug.Log("sent to Milkcocoa");
		}
	}
	// Update is called once per frame
	void Update () {

	}
}

#動作確認

とりあえずUnity内のテスト実行で動くことを確認します。

スクリーンショット 2016-01-24 2.21.03.png

#iOSでも動作確認

この後、iOSにビルドしても動くことを確認しました。
ちょっと手間取ったのが、この問題。記事通りxcodeでBuild SettingsのENABLE_BITCODEを"NO"にするとビルドできました。プロジェクトをCleanするのも忘れずに。

1355.jpg

20
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?