网页端HTML使用MQTTJs订阅RabbitMQ数据
2017-09-22 23:46
1486 查看
最近在做一个公司的日志组件时有一个问题难住了我。今天问题终于解决了。由于在解决问题中,在网上也查了很多资料都没有一个完整的实例可以参考。所以本着无私分享的目的记录一下完整的解决过程和实例。
需求:做一个统一日志系统可以查看日志列表和一个可以订阅最新日志的页面。通过提供一个封装好日志记录方法的sdk文件将日志统一收集。
通过上面的需求进行我们使用RabbitMQ+Mongodb来实现系统。
使用C#封装一个SDK大家都会这里就不说了。C#连接RabbitMQ示例代码也是一堆堆的也没什么好说的。下面重点说一下网页端如何使用JS去订阅RabbitMQ收到的最新日志信息。
后端都是使用RabbitMQ的AMQP协议,而前端要求在网页HTML上显示数据。我们选择了使用MQTT协议从RabbitMQ中订阅数据。
具体步骤:
1、先准备好相关JS库。MQTT有一个叫browserMqtt.js看名字就知道是为浏览器提供的JS库。还有一个封装了操作MQ的JS库 mqfactory.js。最后还要一个jquery.js文件。这样工具就准备好了。JS文件下载
2、HTML端代码。
/// <summary> /// 主题路由 /// </summary> public class RoutingKeyTopic { /// <summary> /// 生产者 /// </summary> public const string LogTopic_Producer = "Dcon.Logs.Client"; /// <summary> /// 消息者_日志服务_保存日志 /// </summary> public const string LogTopic_Consume_Server_SaveDB = "Dcon.Logs.*"; /// <summary> /// 消息者_日志服务_Web显示日志 /// </summary> public const string LogTopic_Consume_Server_WebShow = "Dcon.Logs#";//".Logs.Client"; /// <summary> /// 消息者_日志服务_Web显示日志 /// </summary> public const string LogTopic_Consume_Server_WebShow_T = "*.Logs.Client";//".Logs.Client"; /// <summary> /// 消息者_日志服务_ # 接收所有 /// </summary> public const string LogTopic_Consume_Server_All = "#";//".Logs.Client"; } }View Code 注意点: 1、MQTT的路由是以 / 来分割的。在RabbitMQ中会被转义成 . 如示例中的路由Dcon/Logs/Client会被转换成 Dcon.Logs.Client 2、网页端接收时的路由要和发送端的路由一至。也就是说 后端用 Dcon.Logs.Client 来推数据前端就要使用 Dcon/Logs/Client来接收数据。 3、MQTT路由不支持通配符. 4、由于MQTT的JS库没有提供Topic交换机与路由绑定功能。所以前端接收时 不能设置订阅主题交换机名称。如果要和amqp交互只能使用amqp的默认主题交换机名称 amq.topic 运行效果图:
相关文章推荐
- 【.NET】使用HtmlAgilityPack抓取网页数据
- 【.NET】使用HtmlAgilityPack抓取网页数据
- 使用HtmlAgilityPack抓取网页数据
- 【.NET】使用HtmlAgilityPack抓取网页数据
- 使用HtmlAgilityPack抓取网页数据
- Html网页使用jQuery传递参数并获取Web API的数据
- 使用HtmlAgilityPack和ScrapySharp抓取网页数据遇到的几个问题解决方法——格式编码问题
- 【.NET】使用HtmlAgilityPack抓取网页数据
- NET 使用HtmlAgilityPack抓取网页数据
- 【.NET】使用HtmlAgilityPack抓取网页数据
- 使用HtmlAgilityPack抓取网页数据
- 使用System.Text.RegularExpression中的API实现网页数据的抓取
- 使用System.Text.RegularExpression中的API实现网页数据的抓取
- 使用代码模拟请求和提交网页数据
- 使用纯HTML的通用数据管理和服务
- 使用纯HTML的通用数据管理和服务
- ASP网站数据采集程序制作:一个采集入库生成本地文件的几个FUCTION(可用来生成HTML静态网页)
- HTML网页内容判断该网页使用的字符集
- 如何通过使用 JScript 从某个 HTML 网页自动化 Excel
- 使用XSLT将XML数据转换成HTML