ActiveMQ与mqtt.js的结合应用

简介:

项目结构

这里写图片描述


这里写图片描述

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Apache.NMS;
using Apache.NMS.ActiveMQ;
using Apache.NMS.ActiveMQ.Commands;
using Apache.NMS.Util;
using System.Threading;

namespace ActiveMqDemo
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.WriteLine("按回车开始!");
            Console.ReadLine();
            IConnectionFactory factory =new ConnectionFactory("tcp://localhost:61616");
            using (IConnection conn = factory.CreateConnection("wu", "123456"))
            {
                using (ISession session = conn.CreateSession())
                {
                    ActiveMQTopic topic = new ActiveMQTopic("test");
                    using (IMessageProducer producer = session.CreateProducer(topic))
                    {
                        conn.Start();
                        //可以写入字符串,也可以是一个xml字符串等
                        for (int i = 0; i < 10; i++)
                        {
                            ITextMessage message = session.CreateTextMessage("新messsage" + i);
                            producer.Send(message,MsgDeliveryMode.NonPersistent,MsgPriority.Normal,TimeSpan.MinValue);
                            Console.WriteLine("发送新消息:" + i);
                            Thread.Sleep(1000);

                        }

                    }
                }
            }
            Console.ReadKey();

        }
    }
}

ActiveMqPage.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ActiveMqPage.aspx.cs" Inherits="MyDemo.ActiveMqPage" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
    <script type="text/javascript" src="js/mqttws31.js"></script>
    <script type="text/javascript">
        var host = "localhost";
        var port = 61614;
        var clientID = "myWeb";
        var destination = "test";
        window.onload = function () {
            document.getElementById("btn-start").onclick = function () {
                window.client = new Messaging.Client(host, Number(port), clientID);
                client.onMessageArrived = function (e) {

                    alert(e.payloadString);
                };
                client.onConnectionLost = function (e) { alert("lost"); };

                client.connect({

                    onSuccess: function () {
                        client.subscribe(destination);
                    },
                    onFailure: function () {

                        alert("connect fail!");
                    }

                });

                document.getElementById("btn-send").onclick = function () {
                    var txt = document.getElementById("txt-value").value;
                    if (txt != "") {
                        var message = new Messaging.Message(txt);
                        message.destinationName = destination;
                        client.send(message);
                    }

                };

            };

        }

    </script>
</head>
<body>
    <div>
        <input type="button" id="btn-start" value="连接到ActiveMQ" />
        <input id="txt-value" type="text" />
        <input id="btn-send" type="button" value="发送" />
    </div>
</body>
</html>

运行结果如图:

这里写图片描述


这里写图片描述


这里写图片描述

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
JavaScript 前端开发
如何减少Node.js应用中的全局变量?
如何减少Node.js应用中的全局变量?
687 165
|
10月前
|
存储 监控 JavaScript
基于布隆过滤器的 Node.js 算法在局域网电脑桌面监控设备快速校验中的应用研究
本文探讨了布隆过滤器在局域网电脑桌面监控中的应用,分析其高效空间利用率、快速查询性能及动态扩容优势,并设计了基于MAC地址的校验模型,提供Node.js实现代码,适用于设备准入控制与重复数据过滤场景。
327 0
|
9月前
|
运维 监控 JavaScript
基于 Node.js 图结构的局域网设备拓扑分析算法在局域网内监控软件中的应用研究
本文探讨图结构在局域网监控系统中的应用,通过Node.js实现设备拓扑建模、路径分析与故障定位,提升网络可视化、可追溯性与运维效率,结合模拟实验验证其高效性与准确性。
469 3
|
前端开发 搜索推荐 JavaScript
如何通过DIY.JS快速构建出一个DIY手机壳、T恤的应用?
DIY.JS 是一款基于原生 Canvas 的业务级图形库,专注于商品定制的图形交互功能,帮助开发者轻松实现个性化设计。适用于 T 恤、手机壳等多种商品场景。它自带丰富功能,无需从零构建,快速集成到项目中。通过创建舞台、添加模型、定义 DIY 区域和添加素材四个步骤即可完成基础用法。支持在线演示体验,文档详细,易上手。
628 57
|
10月前
|
资源调度 负载均衡 JavaScript
使用PM2工具部署Vue.js应用于服务器
以上步骤完成之后,你就成功利⽤ PM⼆工具将 Vuejs 应⽰程序部署至服 务 器,并且配合反向代理实现了高效稳定访问及负载均衡功能。
528 0
|
监控 算法 JavaScript
公司局域网管理视域下 Node.js 图算法的深度应用研究:拓扑结构建模与流量优化策略探析
本文探讨了图论算法在公司局域网管理中的应用,针对设备互联复杂、流量调度低效及安全监控困难等问题,提出基于图论的解决方案。通过节点与边建模局域网拓扑结构,利用DFS/BFS实现设备快速发现,Dijkstra算法优化流量路径,社区检测算法识别安全风险。结合WorkWin软件实例,展示了算法在设备管理、流量调度与安全监控中的价值,为智能化局域网管理提供了理论与实践指导。
326 3
|
存储 JavaScript 前端开发
|
JavaScript 前端开发 算法
JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能,JS中排序算法的使用详解(附实际应用代码)
Array.sort() 是一个功能强大的方法,通过自定义的比较函数,可以处理各种复杂的排序逻辑。无论是简单的数字排序,还是多字段、嵌套对象、分组排序等高级应用,Array.sort() 都能胜任。同时,通过性能优化技巧(如映射排序)和结合其他数组方法(如 reduce),Array.sort() 可以用来实现高效的数据处理逻辑。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

热门文章

最新文章