vs2017导入m2mqtt.dll使用mqtt协议开发unity3d客户端

1、 获取m2mqtt的源代码编译成dll文件:

1.1、下载:m2mqtt源码下载地址
1.2、打开:打开 M2Mqtt.sln 文件,一路提示都按确定,然后会弹出html页面的报错,不用理会关掉就行。
在vs2017里可以看到

vs2017导入m2mqtt.dll使用mqtt协议开发unity3d客户端_第1张图片
TIM图片20170914175357.png

从图中可以看到有一个项目是可用的。
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.dllM2Mqtt.Net.pdb

2、将m2mqtt导入到unity项目中

在unity项目目录下的Assets目录下新建 Plugins 文件夹,并将生成的 M2Mqtt.Net.dllM2Mqtt.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;
}
...

你可能感兴趣的:(vs2017导入m2mqtt.dll使用mqtt协议开发unity3d客户端)