关于长连接的协议方式MQTT

本文介绍了一个运用MQTT协议进行远程控制水肥机的项目。通过订阅和发布主题,如'waterFertilizer',实现了对电磁阀、进水泵、施肥泵和水肥机状态的实时控制和显示。利用JavaScript进行前端交互,根据接收到的数据动态更新设备的工作状态。
摘要由CSDN通过智能技术生成

协议名称
MQTT

远程控制水肥机项目

//选中订阅主题 w2320308267 waterFertilizer
var selectedTopics = [‘waterFertilizer’];

    //选中发布主题
    var currentTopic='waterFertilizer';

    //客户端选项
    var option = {
        "ServerUri": "39.98.155.166",
        "ServerPort": 8083,
        "UserName": "zzokq",
        "Password": "123456",
        "ClientId": "",
        "TimeOut": 5,
        "KeepAlive": 100,
        "CleanSession": false,
        "SSL":false
    }

    //客户端
    var client;
    var Afeisu,Bfeisu,Cfeisu,Dfeisu,suanLiu;
	
	option.ClientId = guid();

            client = new Paho.Client(option.ServerUri, option.ServerPort, option.ClientId)

            client.onConnectionLost = onConnectionLost;
            client.onMessageArrived = onMessageArrived;

            client.connect({
                invocationContext: {
                    host: option.ServerUri,//IP地址
                    port: option.ServerPort,//端口号
                    path: client.path,
                    clientId: option.ClientId//标识
                },
                timeout: option.TimeOut,//连接超时时间
                keepAliveInterval: option.KeepAlive,//心跳间隔
                cleanSession: option.CleanSession,//是否清理Session
                useSSL: option.SSL,//是否启用SSL
                userName: option.UserName,  //用户名
                password: option.Password,  //密码
                onSuccess: onConnect,//连接成功回调事件
                onFailure: onError//连接失败回调事件
            });

// var msg = “”;
// for(var i in selectedTopics){
// var t = selectedTopics[i];
// console.log(t.Topic)
// client.subscribe(t.Topic);
// msg+=t.Topic+“;”
// }
// WriteToStatus(“成功订阅主题:” + msg);

// setTimeout(function(){
// client.subscribe(‘waterFertilizer’);
// WriteToStatus(“成功订阅主题:” );
// },100)

	//连接成功事件
    function onConnect() {
        WriteToStatus("连接成功!")
        client.subscribe('waterFertilizer');
        WriteToStatus("成功订阅主题:水肥机主题" );
        client.subscribe('meteorology');
        WriteToStatus("成功订阅主题:环境监测主题" );
        enable($("#btnConnect"), false);
        enable($("#btnDisconnect"), true);
        enable($("#btnPublish"), true);
        enable($("#btnSubscribe"), true);
    }
    //连接失败事件
    function onError(e) {
        WriteToStatus("连接失败:" + e)

        enable($("#btnConnect"), true);
        enable($("#btnDisconnect"), false);
        enable($("#btnPublish"), false);
        enable($("#btnSubscribe"), false);
    }
    //连接断开事件
    function onConnectionLost(e) {
        if (e.errorCode !== 0) {
            WriteToStatus("连接异常断开:" + e.errorMessage);
            enable($("#btnConnect"), true);
            enable($("#btnDisconnect"), false);
            enable($("#btnPublish"), false
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值