一个月玩转MQTT(篇六:发布ASP.NET项目到阿里云 Ubuntu 服务器)

一个月玩转MQTT(篇六:发布ASP.NET项目到阿里云 Ubuntu 服务器)

前面讲到了:

一个月玩转MQTT(篇二:部署阿里云服务器和EMQX)-ZEEKLOG博客

一个月玩转MQTT(篇三:测试EMQX)-ZEEKLOG博客

一个月玩转MQTT(篇四:移远EC200U模块MQTT连接测试)-ZEEKLOG博客

一个月玩转MQTT(篇五:开发自己的MQTT WEB页面)-ZEEKLOG博客

想想,从2月12日腊月二十五中午春节放假开始,回到家,就写“篇二”,今天2月15日腊月二十八已经写到“篇六”了,感觉自己还挺拼的。

没挣到500万前,就继续和各位共勉吧!

下面开始吧!

如果将上一篇做好的ASP.NET项目发布到阿里云 Ubuntu 服务器上,那么我们就可以利用公网IP,使用红衣大叔周鸿祎的360浏览器远程浏览我们的网页了,通过网页就可以看到我们传感器的实时数据了。

步骤 1:在 VS2022 中发布项目

右键项目→「发布」→ 选择「文件夹」→ 下一步 → 发布;

这一步的目的是将项目编译并打包成一个独立的、可在 Linux 上运行的文件集合,输出到你本地 Windows 电脑的一个文件夹里。

注意:发布配置里「部署模式」选「依赖框架 (Framework-dependent)」。目标运行时要选择 linux-x64,因为我们是要在阿里云的ubuntu服务器上运行哦。

步骤 2:将发布文件上传到阿里云服务器

1、首先,远程连接阿里云服务器。

2、在服务器opt目录下,创建一个SensorMqttDashboard文件目录。使用命令:

sudo mkdir -p /opt/SensorMqttDashboard

已经创建的文件夹可以在“文件管理”栏查看。

3、将本地"E:\一个月玩转MQTT\SensorMqttDashboard\bin\Release\net8.0\publish"中的所有文件上传到服务器的/opt/SensorMqttDashboard目录。

在你的 Windows 11 电脑上,打开 PowerShell 或 命令提示符 (CMD)。输入以下命令:

scp -r E:\一个月玩转MQTT\SensorMqttDashboard\bin\Release\net8.0\publish\* [email protected]:/opt/SensorMqttDashboard/ 

开始传输文件。

# 我使用的命令是这个 scp -o StrictHostKeyChecking=no -r E:\一个月玩转MQTT\SensorMqttDashboard\bin\Release\net8.0\publish\* [email protected]:/opt/SensorMqttDashboard/

上图中可以看到传输的文件和文件大小。

在云服务器中我们可以查看已发布的文件:

步骤 3:服务器安装.NET 8 运行时

1、服务器上,ASP.NET项目需要.NET 运行时才能运行:

# 安装.NET 8运行时 sudo apt-get update sudo apt-get install -y dotnet-runtime-8.0 # 验证安装(显示版本则成功) dotnet --version

2、安装 ASP.NET Core 8.0 运行时。对于ASP.NET Core Web 应用,需要专门的 ASP.NET Core 运行时。

sudo apt update && sudo apt install -y aspnetcore-runtime-8.0

步骤4:启动项目

cd /opt/SensorMqttDashboard ./SensorMqttDashboard --urls=http://0.0.0.0:5000

运行结果如下:

上图表示:

  • MQTT客户端已连接到 你的阿里云服务器公网IP:1883,订阅主题:sensor/inclination/# → MQTT 功能正常,和 EMQX 对接成功;
  • Now listening on: http://0.0.0.0:5000 → Web 服务已监听所有网卡的 5000 端口,公网可访问;
  • Application started. Press Ctrl+C to shut down. → 项目完全启动,无任何报错。

另外,补充一点:

因为EMQX和ASP.NET WEB项目共用服务器,为避免启动项目占用过多内存,也可以在启动WEB项目时,加内存限制 < 200M。

./SensorMqttDashboard --urls=http://0.0.0.0:5000 --memory-limit 200mb

也可配置 EMQX 内存上限:编辑 /etc/emqx/emqx.conf,添加 node.process_limit = 1024 和 node.max_heap_size = 512MB,限制 EMQX 内存占用。

步骤5:查看网页

好啦,最后临门一脚!就快大功告成了。

我们公网访问地址是http://101.201.110.56:5000。所以要开发端口。

在阿里云服务器上,开放5000端口。

在服务器控制台,允许5000端口

sudo ufw allow 5000/tcp

好吧,重新启动项目(命令:./SensorMqttDashboard --urls=http://0.0.0.0:5000),这就测试一下吧。

打开浏览器,输入:http://101.201.110.56:5000,您就可以在全中国的任何地方访问了。由于保密原因,101.201.110.56这个IP地址是假的。

步骤6:配置开机自启动

另外,需要配置开机自启(systemd,生产环境必做)

1、创建服务文件

# 创建 systemd 服务文件 sudo vi /etc/systemd/system/sensormqttdashboard.service

2、按 i 进入编辑模式,粘贴以下配置(要根据你自己的项目定启动配置)

[Unit] Description=SensorMqttDashboard After=network.target emqx.service [Service] WorkingDirectory=/opt/SensorMqttDashboard ExecStart=/opt/SensorMqttDashboard/SensorMqttDashboard --urls=http://0.0.0.0:5000 Restart=always # 崩溃自动重启 RestartSec=5 # 重启间隔5秒 User=root Environment=ASPNETCORE_ENVIRONMENT=Production # 生产环境 [Install] WantedBy=multi-user.target

3、输入:wq保存修改并退出

4、重新加载并启用服务

# 1. 重新加载 systemd 配置 sudo systemctl daemon-reload # 2. 启动服务 sudo systemctl start sensormqttdashboard.service # 3. 设置开机自启 sudo systemctl enable sensormqttdashboard.service # 4. 查看服务状态(确认是否运行正常) sudo systemctl status sensormqttdashboard.service # 5. 验证开机自启是否生效 sudo systemctl is-enabled sensormqttdashboard.service

运行结果:如果状态显示 active (running),说明服务配置和启用都成功了。

ok!

这样,我们就讲完了如何构建一个公网web网页来建立与EMQX的MQTT连接,正儿八经可以用来展示来自4G通信的传感器的数据了。

下一篇,我们就开始在讲解如何通过硬件EC200发送消息,在服务器的WEB页面显示传感器数据!!!

其他:可能会用到的命令:

# 一键清空当前目录下的所有内容(包括文件、子文件夹) sudo rm -rf /opt/SensorMqttDashboard/* # 验证:再次查看,目录为空 ls -la

Read more

10分钟打造专属AI助手!ToDesk云电脑/顺网云/海马云操作DeepSeek哪家强?

10分钟打造专属AI助手!ToDesk云电脑/顺网云/海马云操作DeepSeek哪家强?

文章目录 * 一、引言 * 云计算平台概览 * ToDesk云电脑:随时随地用上高性能电脑 * 二 .云电脑初体验 * DeekSeek介绍 * 版本参数与特点 * 任务类型表现 * 1、ToDesk云电脑 * 2、顺网云电脑 * 3、海马云电脑 * 三、DeekSeek本地化实操和AIGC应用 * 1. ToDesk云电脑 * 2. 海马云电脑 * 3、顺网云电脑 * 四、结语 * 总结:云电脑如何选择? 一、引言 DeepSeek这些大模型让 AI 开发变得越来越有趣,但真要跑起来,可没那么简单! * 本地配置太麻烦:显卡不够、驱动难装、环境冲突,光是折腾这些就让人心态崩了。 * 云端性能参差不齐:选错云电脑,可能卡到爆、加载慢,还容易掉线,搞得效率直线下降。 * 成本难控:有的平台按小时计费,价格一会儿一个样,

By Ne0inhk
用 DeepSeek 打造你的超强代码助手

用 DeepSeek 打造你的超强代码助手

DeepSeek Engineer 是啥? 简单来说,DeepSeek Engineer 是一个基于命令行的智能助手。它能帮你完成这些事: * 快速读文件内容:比如你有个配置文件,直接用命令把它加载进助手,后续所有操作都可以基于这个文件。 * 自动改文件:它不仅能提建议,还可以直接生成差异表(diff),甚至自动应用修改。 * 智能代码生成:比如你让它生成代码片段,它会按照指定格式和规则直接返回。 更重要的是,这一切都是通过 DeepSeek 的强大 API 来实现的。想象一下,你有个贴身助手,不仅能听懂你的代码需求,还能直接动手帮你写! 核心功能拆解 我们先来看 DeepSeek Engineer 的几个核心能力,让你更好地理解它的强大之处。 1. 自动配置 DeepSeek 客户端 启动这个工具时,你只需要准备一个 .env 文件,里面写上你的 API Key,比如: DEEPSEEK_API_

By Ne0inhk
解锁DeepSeek潜能:Docker+Ollama打造本地大模型部署新范式

解锁DeepSeek潜能:Docker+Ollama打造本地大模型部署新范式

🐇明明跟你说过:个人主页 🏅个人专栏:《深度探秘:AI界的007》 🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、什么是Docker 2、什么是Ollama 二、准备工作 1、操作系统 2、镜像准备 三、安装 1、安装Docker 2、启动Ollama 3、拉取Deepseek大模型 4、启动Deepseek  一、引言 1、什么是Docker Docker:就像一个“打包好的App” 想象一下,你写了一个很棒的程序,在自己的电脑上运行得很好。但当你把它发给别人,可能会遇到各种问题: * “这个软件需要 Python 3.8,但我只有 Python 3.6!

By Ne0inhk
深挖 DeepSeek 隐藏玩法·智能炼金术2.0版本

深挖 DeepSeek 隐藏玩法·智能炼金术2.0版本

前引:屏幕前的你还在AI智能搜索框这样搜索吗?“这道题怎么写”“苹果为什么红”“怎么不被发现翘课” ,。看到此篇文章的小伙伴们!请准备好你的思维魔杖,开启【霍格沃茨模式】,看我如何更新秘密的【知识炼金术】,我们一起来解锁更加刺激的剧情!友情提醒:《《《前方高能》》》 目录 在哪使用DeepSeek 如何对提需求  隐藏玩法总结 几个高阶提示词 职场打工人 自媒体创作 电商实战 程序员开挂 非适用场地 “服务器繁忙”如何解决 (1)硅基流动平台 (2)Chatbox + API集成方案 (3)各大云平台 搭建个人知识库 前置准备 下载安装AnythingLLM 选择DeepSeek作为AI提供商 创作工作区 导入文档 编辑  编辑 小编寄语 ——————————————————————————————————————————— 在哪使用DeepSeek 我们解锁剧情前,肯定要知道在哪用DeepSeek!咯,为了照顾一些萌新朋友,它的下载方式我放在下面了,拿走不谢!  (1)

By Ne0inhk