c# mqtt 物联网专用通信方案之MQTT服务器配置

最近由于工作比较忙,没有时间写博客,今天抽出时间来把自己部署MQTT服务器的步骤分享一下给大家,因为自己在部署的时候遇到了很多的坑,希望大家不再踩雷,我安装的是MQTT是apollo;网站很多方法感觉都没有说明白,或是有很多不完善的地方,今天我把完善的步骤写一下:

1,安装之前首先要先安装JDK因为apollo需要Java的支持,这里需要注意Java jdk的版本需要注意一不要用太高版本的,使用8.0这个我是我测试过,使用9版本的就是不行,apollo是启动不了的,现在好像官方的的版本都很高,所以小伙伴们只能自己百度下载8.0的版本了,具体JAVA怎么配置请参考这个地址

       http://www.runoob.com/java/java-environment-setup.html

 

当JAVA配置好后可以直接,键入命令: java -version、java、javac 几个命令,出现以下信息,说明环境变量配置成功;

2,安装apollo,首先需要去http://activemq.apache.org/apollo/download.html 地址去下载根据自己的操作系统进行选择性下载,这里我的操作系统是Win7,所以下载第二个

3,下载完之后我们解压就可以了,在解压的同时需要注意,需要放在非中文的路径下面,否则后面会出一些想到不问题,不太好拮解决,这里我放在D盘的根目录下

4,进入bin目录下依次执行下面命令分别是

 (1)

       

(2)

     

最后执行的结果如下:

    

创建成后bin目录下就多了一个mytest1

接下来进入mytest/bin,

最后启动输入apollo-broker.cmd run启动成功如下:

接下来我们用C# 进行连接一下代码如下:

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using uPLibrary.Networking.M2Mqtt;
using uPLibrary.Networking.M2Mqtt.Messages;

namespace MQTTProtected
{
    public partial class Form1 : Form
    {
        MqttClient client;
        public Form1()
        {
            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)
        {
            var MQTT_BROKER_ADDRESS = "192.168.1.104";
            client = new MqttClient(IPAddress.Parse(MQTT_BROKER_ADDRESS)); //主机为IP时  
            //MqttClient client = new MqttClient(MQTT_BROKER_ADDRESS); //当主机地址为域名时  

            // 注册消息接收处理事件,还可以注册消息订阅成功、取消订阅成功、与服务器断开等事件处理函数  
            client.MqttMsgPublishReceived += client_MqttMsgPublishReceived;

            //生成客户端ID并连接服务器  
            string clientId = Guid.NewGuid().ToString();   
            client.Connect(clientId, "admin", "password", false, 0x01, false, null, null, true, 60);


            // 订阅主题"/home/temperature" 消息质量为 2   
            client.Subscribe(new string[] { "/mytest/home" }, new byte[] { MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE });

        }
        void client_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
        {
            //处理接收到的消息
            string msg = System.Text.Encoding.Default.GetString(e.Message);
            this.Invoke((EventHandler)delegate { textBox1.AppendText("收到消息:" + msg + "\r\n"); });

        }
        int i = 0;
        private void button2_Click(object sender, EventArgs e)
        {
            timer1.Interval = 1;
            timer1.Enabled = true;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            client.Publish("/mytest/home", Encoding.UTF8.GetBytes(label1.Text), MqttMsgBase.QOS_LEVEL_AT_MOST_ONCE, false);

            label1.Text = (Convert.ToInt32(label1.Text.Trim()) + 1).ToString();
        }
    }
}

 

欢迎大家加群进行C# IOT方面的技术沟通

 

 

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值