1、 获取m2mqtt的源代码编译成dll文件:
1.1、下载:m2mqtt源码下载地址
1.2、打开:打开 M2Mqtt.sln 文件,一路提示都按确定,然后会弹出html页面的报错,不用理会关掉就行。
在vs2017里可以看到
从图中可以看到有一个项目是可用的。
1.3、修改:右键项目名MMqtt.Net,然后选择属性->应用程序 ->目标框架,再选择.NET Framework 3.5,保存。
为什么要用3.5的框架:因为Unity3D(当前的Unity3D版本是3.5版) 支持的 .Net 是3.5版。如果不更改会导致生成的dll不会被unity项目所识别。
1.4、生成:右键项目名MMqtt.Net选择生成,可能会报错报错了则直接跳到报错的地方,即IMqttNetworkChannel.cs中删掉
case MqttSslProtocols.TLSv1_1:
return SslProtocols.Tls11;
case MqttSslProtocols.TLSv1_2:
return SslProtocols.Tls12;
,保存再重新右键生成,即可在项目根目录(右键 解决方案 选择 在文件资源管理器中打开文件夹 的选项)的 bin/Debug/ 目录下生成M2Mqtt.Net文件夹下面的 M2Mqtt.Net.dll 和 M2Mqtt.Net.pdb。
2、将m2mqtt导入到unity项目中
在unity项目目录下的Assets目录下新建 Plugins 文件夹,并将生成的 M2Mqtt.Net.dll 和 M2Mqtt.Net.pdb连个文件放入其中即可完成导入。
3、使用示例
using uPLibrary.Networking.M2Mqtt;
using uPLibrary.Networking.M2Mqtt.Messages;
...
mqttClient = new MqttClient(IPAddress.Parse(_ip));
//生成客户端ID并连接服务器
string clientId = Guid.NewGuid().ToString();
mqttClient.Connect(clientId);
if (!mqttClient.IsConnected){
Debug.Log("havent connect to server");
return;
}
...