vince
2024-10-15 7ae7b6977987d0355efdafb5bb8560a748adca46
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title><!DOCTYPE html>
        <html lang="en">
        <head>
        <meta charset="UTF-8">
        <title>TEMPLATES</title>
    <!-- 可选在线mqtt.min.js文件与本地mqtt.min.js文件 -->
<!--    <script src=" https://unpkg.com/mqtt@5.3.4/dist/mqtt.min.js"></script>-->
        <script th:src="@{/js/mqtt.min.js}"></script>
</head>
<body>
<h2>MQTT测试</h2>
<form>
</form>
<!--<button id="disconnectBtn" disabled="disabled" onclick="connectEND()">已断开</button>-->
</body>
<body>
</body>
<body>
<h1>消息框</h1>
<textarea id="messageTextArea" style="resize:none;" cols="80" rows="20"></textarea><br/>
</body>
<script>
    connectMQTT();
    var client;                                                                //创建一个客户端对象
    /* 连接服务器 */
    function connectMQTT() {
        // 用户密码
        var host = "ws://127.0.0.1";
        var port = "8083";
        var path = "/mqtt";
        var url = host + ':' + port + path;
        var clientID = randomID();
        var user="";
        var password="";
        // URL地址
        console.log(url);                                            //后台输入URL地址
        var options = {                                                //创建一个参数对象
            clientID: clientID,                                        //clientID
            username: user,                                            //用户名
            password: password,                                        //用户密码
            outOfSessionMessages: true
        };
        client = mqtt.connect(url, options);                            //连接服务器
        console.log(client);
        console.log(client.connected);
        client.stream.on('error', function (err) {                    //连接错误时触发
            console.error('Connection error:' + err);
            console.log('连接失败');
            client.end();                                            //关闭客户端对象
        })
        client.on('connect', function (packet) {                                                    //连接服务器后触发
            client.on('message', message_str)                                                    //定义接收消息后触发回调函数
            var messageTextArea = document.getElementById("messageTextArea");                    //textarea添加文本
            messageTextArea.value += "已连接\n"                                                    //textarea添加文本
            console.log("已连接");                                                                //后台输出已连接
            var topic = "test"
            subscribe_topic(topic);
        })
    }
    /* 订阅主题 */
    function subscribe_topic(topic) {
        client.subscribe(topic);                                            //定阅主题
    }
 
    /* 接收消息函数 */
    function message_str(topic, message) {                                                    //监听消息函数
        console.log("收到来自主题:" + topic + "的消息:" + message.toString());
    }
 
    /* 生成随机clientID */
    function randomID() {
        return 'clientID_' + 12345;
        // return 'clientID_' + Math.random().toString(16).substr(2, 8)
    }
 
</script>
</html>