热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于node.js与appinventor在本地搭建简单的MQTT服务器,手机通过热点连接电脑实现MQTT服务器

服务器搭建与订阅者发布者在电脑上实现参考链接:1.使用nodejs快速搭建MQTT服务器及实时推送、获取数据2.nodejs搭建MQTT服务器(要以管理员方式打开cmd来npmin

服务器搭建 与 订阅者 发布者 在电脑上实现

参考链接:

1.使用 nodejs 快速搭建 MQTT 服务器及实时推送、获取数据
2.nodejs搭建MQTT服务器(要以管理员方式打开cmd来npm install)
3.兄弟博客
4.使用apollo搭建本地服务器1
5.使用apollo搭建本地服务器2

个人代码:

服务端mqttserver:

const mosca = require("mosca");
const MqttServer = new mosca.Server({
port: 1883
});
MqttServer.on("clientConnected", function(client) {
//当有客户端连接时的回调.
console.log("client connected", client.id);
});
/**
* 监听MQTT主题消息
* 当客户端有连接发布主题消息时
**/
MqttServer.on("published", function(packet, client) {
var topic = packet.topic;
switch (topic) {
case "temperature":
console.log('temperature', packet.payload.toString());
//MQTT可以转发主题消息至其他主题
// MqttServer.publish({ topic: 'other', payload: 'sssss' });
break;
case "humidity":
console.log("humidity", packet.payload.toString());
break;
}
});

发布者 pubclient.js

const mqtt = require("mqtt");
const client = mqtt.connect("mqtt://127.0.0.1:1883"); //连接到mqtt服务端
//写个定时器定时每隔3秒定时推送天气信息,此业务可替换为自己的实际需求
setInterval(function() {
const value = Math.ceil(Math.random() * 40);
client.publish("temperature", value.toString(), { qos: 0, retain: true });
}, 3000);

订阅者 subclient.js

const mqtt = require("mqtt");
// const mqtt = require('./node_modules/mqtt/dist/mqtt.min.js')
const client = mqtt.connect("mqtt://127.0.0.1:1883"); //指定服务端地址和端口
client.on("connect", function() {
console.log("服务器连接成功");
// connected = client.connected
client.subscribe("temperature", { qos: 1 }); //订阅主题为test的消息
client.subscribe("humidity",{ qos:1});
});
client.on("message", function(top, message) {
switch (top) {
case "temperature":
console.log("当前topic:", top);
console.log("当前温度:", message.toString());
break;
case "humidity":
console.log("当前topic:", top);
console.log("当前湿度:", message.toString());
break;
}
});

成功演示

《基于node.js与appinventor在本地搭建简单的MQTT服务器,手机通过热点连接电脑实现MQTT服务器》

基于inventor

inventor设计

《基于node.js与appinventor在本地搭建简单的MQTT服务器,手机通过热点连接电脑实现MQTT服务器》

《基于node.js与appinventor在本地搭建简单的MQTT服务器,手机通过热点连接电脑实现MQTT服务器》
《基于node.js与appinventor在本地搭建简单的MQTT服务器,手机通过热点连接电脑实现MQTT服务器》

电脑与手机在同一局域网中(这里电脑连接手机热点)

同学是网线连接后手机连接电脑热点,我因为没有网线,连接校园网后手机连不上电脑热点,但是通过这个方法成功了
《基于node.js与appinventor在本地搭建简单的MQTT服务器,手机通过热点连接电脑实现MQTT服务器》
手机端需要通过这个IP地址来访问

成功演示

《基于node.js与appinventor在本地搭建简单的MQTT服务器,手机通过热点连接电脑实现MQTT服务器》
《基于node.js与appinventor在本地搭建简单的MQTT服务器,手机通过热点连接电脑实现MQTT服务器》

总结与感想

的确,这个测试需要在同一局域网中进行,首先得能够ping通。其次知道本地IP的区别与用途。当appinventor 直接指定IP地址而不是通过文本框输入的时候却是不能完成,这是一个问题。


推荐阅读
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • 微软评估和规划(MAP)的工具包介绍及应用实验手册
    本文介绍了微软评估和规划(MAP)的工具包,该工具包是一个无代理工具,旨在简化和精简通过网络范围内的自动发现和评估IT基础设施在多个方案规划进程。工具包支持库存和使用用于SQL Server和Windows Server迁移评估,以及评估服务器的信息最广泛使用微软的技术。此外,工具包还提供了服务器虚拟化方案,以帮助识别未被充分利用的资源和硬件需要成功巩固服务器使用微软的Hyper - V技术规格。 ... [详细]
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
  • 【前端工具】nodejs+npm+vue 安装(windows)
    预备先看看这几个是干嘛的,相互的关系是啥。nodejs是语言,类比到php。npm是个包管理,类比到composer。vue是个框架&# ... [详细]
  • 必须先赞下国人npm库作品:node-images(https:github.comzhangyuanweinode-images),封装了跨平台的C++逻辑,形成nodejsAP ... [详细]
  • 1.移除consol.log()的babel插件安装:npmibabel-plugin-transform-remove-console-D配置:babel.config.js:这 ... [详细]
  • 先下载nodejs针对windows安装安装就行。自定义安装在对应的文件夹就行安装完之后需要在电脑的环境变量里面添加两个路径通过cmd可以查看自己node的版本号最后通过运行npm ... [详细]
  • Node.js详细安装及环境配置
    1、下载安装根据自己电脑系统及位数选择,我这里选择windows64位.msi格式安装包(官网:https:odejs.orgzh-cndownload).msi和.zip格式区别 ... [详细]
  • 大数据 (三) BI报表系统  superset 源码搭建开发环境
    大数据 (三) BI报表系统 superset 源码搭建开发环境 ... [详细]
  • 问题内容npmERR!code1npmERR!pathE:\WebProject\jeecgboot-vue3\node_modules\gifsiclenpmERR!com ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 设计模式——模板方法模式的应用和优缺点
    本文介绍了设计模式中的模板方法模式,包括其定义、应用、优点、缺点和使用场景。模板方法模式是一种基于继承的代码复用技术,通过将复杂流程的实现步骤封装在基本方法中,并在抽象父类中定义模板方法的执行次序,子类可以覆盖某些步骤,实现相同的算法框架的不同功能。该模式在软件开发中具有广泛的应用价值。 ... [详细]
  • 在C#中,使用关键字abstract来定义抽象类和抽象方法。抽象类是一种不能被实例化的类,它只提供部分实现,但可以被其他类继承并创建实例。抽象类可以用于类、方法、属性、索引器和事件。在一个类声明中使用abstract表示该类倾向于作为其他类的基类成员被标识为抽象,或者被包含在一个抽象类中,必须由其派生类实现。本文介绍了C#中抽象类和抽象方法的基础知识,并提供了一个示例代码。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有