首页 > 系统相关 >EMQX(EMQTT)ubuntu下的安装与简单使用

EMQX(EMQTT)ubuntu下的安装与简单使用

时间:2023-01-03 17:01:37浏览次数:63  
标签:EMQTT String import ubuntu eclipse client org EMQX paho

代码部分是大佬写的需要可以参考  点击这里

运行要求

  gcc-c++

  erlang

gcc --version //查看是否安装gcc
出现版本则是已安装,未安装可以参考 https://blog.csdn.net/MOONLIGHT003/article/details/125628872

  安装erlang

erl -version //查看erlang版本没有则说明未安装erlang
sudo apt install erlang  //安装erlang 

  新建EMQTT安装文件夹并下载EMQX安装包(文件夹位置随意,这里是/home/bytedance)

mkdir EMQX   //新建安装文件夹
cd EMQX //进入安装文件夹
wget https://www.emqx.com/zh/downloads/broker/5.0.8/emqx-5.0.8-el8-amd64.tar.gz  // 下载emqx安装包(这里建议去官网下载最新包)

  启动运行

//下载完成后,在EMQX文件夹下会有一个压缩包
//解压压缩包 tar -xvf 下载的文件名
tar -xvf emqx-5.0.8-el8-amd64.tar.gz
//启动
bin/emqx start
//停止
bin/emqx stop
//查看状态
bin/emqx_ctl status

  控制面板

浏览器输入 127.0.0.1:18083(127.0.0.1是本地的IP,如果是运行在远程服务器需要改成远程服务器的IP)
出现页面说明安装启动成功,默认账户密码在配置文件加下可以看到 
默认账户是admin
默认密码是public

 

 

 不喜欢英文界面的可以在设置里修改为中文

 

 

 

 

 

   关于测试

  安装完成后可以新建个客户端来进行测试

新建Maven工程

POM文件

    <dependencies>
        <dependency>
            <groupId>org.eclipse.paho</groupId>
            <artifactId>org.eclipse.paho.client.mqttv3</artifactId>
            <version>1.2.2</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>2.0.3</version>
        </dependency>

    </dependencies>

Server

import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import java.util.Scanner;
public class Server {
    public static void main(String[] args) throws Exception {
        String host = "tcp://127.0.0.1:1883";
        String topic = "hello";
        String clientId = "server";// clientId不能重复这个是server的id
        //新建mqtt连接
        MqttConnectOptions options = new MqttConnectOptions();
        options.setCleanSession(true);
        //新建mqtt客户端
        MqttClient client = new MqttClient(host, clientId);
        client.connect(options);
        //新建mqtt消息
        MqttMessage message = new MqttMessage();
        @SuppressWarnings("resource")
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要发送的内容:");
        while (true) {
            String MsgMessage= scanner.nextLine();
            message.setPayload(MsgMessage.getBytes());
            client.publish(topic, message);
        }

    }
}

Client

import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;

public class Client {
    public static void main(String[] args) throws Exception {

        String host = "tcp://127.0.0.1:1883";
        String topic = "hello";
        String clientId = "动次打次嘿嘿嘿嘿";// clientId不能重复,这个是client的id
        // 1.设置mqtt连接属性
        MqttConnectOptions options = new MqttConnectOptions();
        options.setCleanSession(true);
        // 2.实例化mqtt客户端
        MqttClient client = new MqttClient(host, clientId);
        // 3.连接
        client.connect(options);
        //这里的setCallback需要新建一个Callback类并实现 MqttCallback 这个类
        client.setCallback(new PushCallback());
        while (true) {
            client.subscribe(topic, 2);
        }
        // client.disconnect();
    }
}

PushCallback

import java.util.Date;

import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.MqttCallback;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class PushCallback implements MqttCallback {
    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    public void connectionLost(Throwable cause) {
        // 连接丢失后进行重连
        System.out.println("连接断开,可以做重连");
        logger.info("掉线时间:{}", new Date());
    }

    public void deliveryComplete(IMqttDeliveryToken token) {
        System.out.println("deliveryComplete---------" + token.isComplete());
    }

    public void messageArrived(String topic, MqttMessage message) throws Exception {
        // subscribe后得到的消息会执行到这里面
        // System.out.println(message);
        System.out.println("接收消息主题 : " + topic);
        System.out.println("接收消息Qos : " + message.getQos());
        System.out.println("接收消息内容 : " + new String(message.getPayload()));
    }
}

 

标签:EMQTT,String,import,ubuntu,eclipse,client,org,EMQX,paho
From: https://www.cnblogs.com/jdearfaust/p/17022758.html

相关文章

  • 解决ubuntu20.04下vi编辑器方向键和退格键问题ABCD
    本文链接:https://blog.csdn.net/zhoupenghui168/article/details/123499092版权在ubuntu中,进入vi命令的插入模式,发现方向键分别对应ABCD以及退格键失效,按方向键不能移动......
  • Ubuntu22.04 编译安装nginx
    1、下载nginx软件包 https://nginx.org/en/download.html   2、压缩包上传服务器并解压缩tarxfnginx-1.22.1.tar.gz   3、进入解压目录,编译安装root......
  • 【Ubuntu】Ubuntu安装python虚拟环境
    1.准备环境Ubuntu20.04LTS1.1安装virtulenv和virtulenvwrappersudopip3installvirtulenvsudopip3installvirtulenvwrapper1.2配置虚拟环境存放目录先在$HOM......
  • 《DFZU2EG_4EV MPSoC之嵌入式Linux开发指南》第一章 Ubuntu系统安装​
    Ubuntu系统安装​Linux的开发需要在Linux系统下进行,这就要求我们的PC主机安装Linux系统,本书我们选择Ubuntu这个Linux发行版系统。本章讲解如何安装虚拟机,以及如何在虚拟机中......
  • ubuntu22.04 安装nginx
    1、使用apt-get安装nginx(得机器能联网才行)#切换到root用户#切换到root用户sudo-i#更新apt源apt-getupdate#安装nginxapt-getinstallnginx-y......
  • ubuntu设置root密码
    新创建虚拟机root用户需要设置密码普通用户登录后在终端打开sudopasswdroot输入密码,并回车(可能提醒无效的密码,密码位数,密码格式不对等提示信息,可以忽略。继续操作仍......
  • Ubuntu 系统下基于Docker 运行GitLab
    环境信息#1.1硬件信息5年戴尔小破本:4core8gi5#1.2系统版本axuduo@axuduo:~$uname-aLinuxaxuduo5.15.0-56-generic#62-UbuntuSMPTueNov2219:54:14UTC......
  • Ubuntu 常用命令
    Usingubuntuwhichrails\\查找路径;pwd\\当前目录;sudosu\\切换到管理员;sudomount-tvboxsfsarah/mnt/s......
  • Ubuntu实现SSH外网连接内网(反向隧道)
    应用场景:如果你有Linux云主机(腾讯、华为等),且公司有一台只有内网IP(或动态IP)的Linux工作机;你计划在家里工作时,通过家里的电脑连接公司的工作机(且不想使用类似Teamvi......
  • 使用 Helm 安装 MQTT 服务器-EMQX
    EMQXℹ️Info:使用EMQX通过Helm3在Kubernetes上部署EMQX4.0集群|EMQemqx/deploy/charts/emqxatmain-v4.4·emqx/emqx(github.com)emqx/values.yamlat......