【MQTT在PHP中的工业级应用】:打造稳定物联网网关的7大设计原则

RabbitMQ MQTT插件实战:5分钟搞定物联网设备消息通信(附避坑指南) 本文详细介绍了如何利用RabbitMQ的MQTT插件快速构建高可靠的物联网消息通信中枢。通过5分钟快速启动指南,深入解析了插件核心机制、生产环境配置、Spring Boot集成实战以及TLS安全加固等关键环节,并提供了实用的避坑指南,帮助开发者高效实现物联网设备与服务的稳定通信。 阅读详情

第一章:PHP 物联网网关 MQTT 协议概述

MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅消息传输协议,专为低带宽、高延迟或不可靠网络环境下的物联网设备通信而设计。在基于 PHP 构建的物联网网关系统中,MQTT 因其低开销、高效能和良好的可扩展性,成为设备与服务器之间数据交互的核心协议。

MQTT 核心特性

  • 基于 TCP/IP 协议栈,确保消息可靠传输
  • 支持三种服务质量等级(QoS 0, 1, 2),适应不同网络场景
  • 使用主题(Topic)进行消息路由,实现灵活的消息分发机制
  • 支持保留消息与遗嘱消息,增强通信健壮性

PHP 中集成 MQTT 客户端

PHP 本身不原生支持 MQTT,但可通过第三方库如 bluerhinos/phpmqtt 实现客户端功能。以下是一个连接 MQTT 代理并订阅主题的基础示例:

// 引入 MQTT 客户端库
require_once 'phpMQTT.php';

$mqtt = new phpMQTT('broker.hivemq.com', 1883, 'php_client');

if ($mqtt->connect()) {
    echo "已连接到 MQTT 代理\n";
    
    // 订阅主题
    $mqtt->subscribe(['iot/sensor/temp' => ['qos' => 0]], null);
    
    // 持续监听消息
    while ($mqtt->connected && $msg = $mqtt->msg()) {
        printf("收到消息: %s 来自主题: %s\n", $msg['message'], $msg['topic']);
    }
} else {
    die("无法连接到 MQTT 代理");
}

典型应用场景对比

场景通信模式适用性
传感器数据上报发布/订阅高
远程设备控制指令下发高
批量固件更新点对点传输中
graph LR A[传感器设备] -->|MQTT 发布| B(MQTT Broker) B -->|MQTT 订阅| C[PHP 网关] C --> D[数据处理与存储] C --> E[转发至 Web 服务]

第二章:MQTT协议核心机制与PHP实现

2.1 MQTT发布/订阅模式的理论基础与PhpMqttClient实践

MQTT(Message Queuing Telemetry Transport)是一种基于发布/订阅模式的轻量级物联网通信协议,适用于低带宽、不稳定网络环境。该模式解耦了消息发布者与订阅者,通过主题(Topic)实现异步通信。
核心机制解析
在发布/订阅模型中,客户端不直接通信,而是通过代理(Broker)按主题路由消息。一个客户端可同时发布和订阅多个主题,实现灵活的数据分发。
PhpMqttClient 实践示例

// 连接到MQTT Broker
$client = new PhpMqttClient('broker.hivemq.com', 1883);
$client->connect();
// 订阅主题
$client->subscribe('sensor/temperature', function ($topic, $message) {
    echo "收到主题{$topic}: {$message}";
});
// 发布消息
$client->publish('sensor/temperature', '26.5');
上述代码展示了连接HiveMQ公开Broker、订阅温度主题并发布数据的过程。回调函数用于处理接收到的消息,实现事件驱动响应。
  • 发布者仅需关注主题和负载,无需知晓订阅者存在
  • 订阅者被动接收匹配主题的消息,支持通配符订阅
  • Broker负责消息路由与QoS保障

2.2 连接认证与TLS加密在PHP中的安全配置

在构建安全的Web应用时,确保数据库连接和网络通信的安全性至关重要。PHP通过多种机制支持连接认证与传输层加密(TLS),有效防止敏感数据在传输过程中被窃取或篡改。
启用MySQLi的TLS连接
$mysqli = new mysqli();
$mysqli->ssl_set(
    '/path/to/client-key.pem',
    '/path/to/client-cert.pem',
    '/path/to/ca-cert.pem',
    null,
    null
);
$mysqli->real_connect(
    'db.example.com',
    'user',
    'password',
    'database',
    3306,
    null,
    MYSQLI_CLIENT_SSL
);
该代码配置MySQLi使用客户端证书、私钥及CA证书建立TLS加密连接。ssl_set() 参数依次为客户端密钥、证书、受信CA证书路径,最后两个参数用于指定密码和SSL上下文。
验证选项说明
  • MYSQLI_CLIENT_SSL:强制使用SSL/TLS加密连接
  • ca-cert.pem:确保服务器身份可信,防止中间人攻击
  • 客户端证书需由可信CA签发,并在数据库服务器配置中注册

2.3 QoS等级控制与消息可靠传递的代码实现

在MQTT协议中,QoS(服务质量)等级决定了消息传递的可靠性。通过设置不同的QoS值(0、1、2),可实现从“最多一次”到“恰好一次”的传输保障。
QoS等级配置示例
import paho.mqtt.client as mqtt

client = mqtt.Client()
client.connect("broker.hivemq.com", 1883, 60)

# QoS 0: 至多一次,无确认
client.publish("sensor/temperature", "25.5", qos=0)

# QoS 1: 至少一次,带确认
client.publish("sensor/humidity", "60", qos=1)

# QoS 2: 恰好一次,双向确认
client.publish("sensor/pressure", "1013", qos=2)
上述代码中,`qos` 参数控制消息传递级别。QoS 0 适用于高频但允许丢失的数据;QoS 1 确保送达,但可能重复;QoS 2 提供最高可靠性,适用于关键指令场景。
消息传递保障机制对比
QoS等级传递语义报文开销
0至多一次低
1至少一次中
2恰好一次高

2.4 遗嘱消息与连接状态管理的工业场景应用

在工业物联网中,设备的不稳定性要求系统具备可靠的连接状态感知能力。MQTT协议的遗嘱消息(Last Will and Testament, LWT)机制可在客户端异常断开时自动发布预设消息,通知其他组件该设备离线。
典型应用场景
  • 产线传感器掉线触发告警
  • AGV小车失联后调度系统重新规划路径
  • 远程PLC维护前状态锁定
代码实现示例
client.will_set(
    topic="factory/sensor_01/status",
    payload="offline",
    qos=1,
    retain=True
)
该代码设置客户端的遗嘱消息:当连接非正常关闭时,Broker将自动发布“offline”到指定主题,QoS为1确保送达,retain=True使新订阅者立即获知最新状态。结合心跳机制,可构建高可靠的工业通信链路。

2.5 客户端会话持久化与Clean Session策略的取舍分析

在MQTT协议中,客户端连接时可通过设置`Clean Session`标志位来决定是否启用会话持久化。该策略直接影响消息传递的可靠性与资源消耗。
Clean Session 的两种模式
  • Clean Session = true:每次连接都建立全新会话,断开后服务器清除状态。
  • Clean Session = false:恢复之前的会话,保留订阅关系与未确认消息。
性能与可靠性的权衡
策略资源占用消息可靠性适用场景
Clean Session=true低弱(不重发)临时设备、短连接
Clean Session=false高强(支持QoS 1/2)工业监控、关键通信
opts := mqtt.NewClientOptions()
opts.AddBroker("tcp://broker.hivemq.com:1883")
opts.SetClientID("device-001")
opts.SetCleanSession(false) // 启用会话持久化
上述代码配置客户端保持会话状态。当SetCleanSession(false)时,代理将缓存离线期间的QoS 1/2消息,在下次连接时重发,确保消息不丢失。

第三章:PHP构建稳定网关的关键技术

3.1 基于Swoole的异步事件驱动架构设计

在高并发服务场景中,传统同步阻塞模型难以满足性能需求。Swoole通过内置的事件循环与多路复用机制,构建了高效的异步非阻塞架构,极大提升了PHP的并发处理能力。
核心组件与工作流程
Swoole的事件驱动架构依赖于Reactor、Worker和Task进程协同工作。Reactor线程负责监听IO事件,Worker处理业务逻辑,Task进程执行耗时任务。
组件职责并发模型
Reactor网络事件监听与分发多线程
Worker同步/异步逻辑处理多进程
Task Worker耗时任务解耦执行独立进程池
异步回调示例
// 启动HTTP服务器
$server = new Swoole\Http\Server("0.0.0.0", 9501);
$server->on("request", function ($req, $resp) {
    $resp->header("Content-Type", "text/plain");
    $resp->end("Hello from Swoole\n");
});
$server->start();
该代码创建了一个基于事件驱动的HTTP服务。当请求到达时,Reactor捕获事件并触发回调,Worker进程异步执行响应逻辑,避免主线程阻塞。

3.2 进程管理与心跳检测保障长连接稳定性

在高可用服务架构中,进程的稳定运行与连接状态的持续监控是保障系统可靠性的核心。通过精细化的进程管理策略,结合实时的心跳检测机制,可有效避免因网络抖动或服务宕机导致的连接中断。
心跳检测机制设计
客户端与服务端定期交换心跳包,用于确认连接活性。典型实现如下:

// 心跳发送逻辑
func (c *Client) startHeartbeat(interval time.Duration) {
    ticker := time.NewTicker(interval)
    for {
        select {
        case <-ticker.C:
            if err := c.SendPing(); err != nil {
                log.Error("心跳发送失败,触发重连")
                c.Reconnect()
            }
        }
    }
}
该代码段启动定时器,每隔固定周期发送一次 Ping 消息。若连续多次未收到 Pong 响应,则判定连接失效并启动重连流程。
进程生命周期管理
使用 supervisord 等工具监控主进程,确保异常退出后能自动重启,维持服务长期可用性。

3.3 内存泄漏防范与资源回收机制优化

常见内存泄漏场景识别
在长期运行的服务中,未释放的缓存、未关闭的文件描述符或数据库连接是典型的泄漏源。尤其在高并发环境下,对象生命周期管理不当将加速内存耗尽。
Go语言中的实践示例
func fetchData(url string) ([]byte, func()) {
    resp, err := http.Get(url)
    if err != nil {
        return nil, func() {}
    }
    return ioutil.ReadAll(resp.Body), func() {
        resp.Body.Close()
    }
}
上述代码通过返回清理函数确保资源可被显式释放,调用方需保证defer cleanup()执行,从而避免文件描述符泄漏。
资源回收策略对比
策略延迟可靠性
手动释放低依赖开发者
GC自动回收高强
RAII模式低强

第四章:工业级网关的高可用与运维设计

4.1 多Broker集群连接与故障自动切换实现

在构建高可用消息系统时,多Broker集群的连接管理与故障自动切换至关重要。客户端通过配置多个初始Broker地址建立连接,利用ZooKeeper或内置服务发现机制动态感知集群拓扑变化。
连接配置示例

props.put("bootstrap.servers", "broker1:9092,broker2:9092,broker3:9092");
props.put("enable.auto.commit", "true");
props.put("auto.commit.interval.ms", "1000");
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
上述代码设置多个Broker作为启动入口,Kafka客户端会自动获取完整的集群元数据。即使部分Broker宕机,仍可通过剩余节点重新连接。
故障检测与切换流程
  • 客户端定期发送心跳并接收元数据响应
  • 当连接中断时,尝试轮询其他Broker列表
  • 通过Leader Epoch或Epoch机制避免脑裂
  • 消费者组触发Rebalance完成分区再分配

4.2 消息队列缓冲与离线消息存储策略

在高并发系统中,消息队列承担着流量削峰和系统解耦的核心职责。为保障消息的可靠传递,合理的缓冲机制与离线存储策略至关重要。
内存与磁盘协同缓冲
采用多级缓冲结构,优先将消息写入内存队列(如Ring Buffer)以降低延迟,后台线程异步刷盘。当系统重启时,通过持久化日志恢复未处理消息。
// 示例:基于 channel 的内存缓冲
msgChan := make(chan *Message, 1000)
go func() {
    for msg := range msgChan {
        writeToDisk(msg) // 异步落盘
    }
}()
该模式通过 channel 实现生产消费解耦,缓冲区大小需根据峰值吞吐量调优,避免 OOM。
离线消息存储方案
针对用户离线期间的消息,采用按用户ID分片的 LSM-Tree 存储结构,支持高效写入与范围查询。典型实现如 Kafka 分区 + 索引文件。
策略优点适用场景
内存+RDBMS事务支持好低频离线用户
Kafka + RocksDB高吞吐、低延迟高频消息系统

4.3 实时监控接口开发与运行状态可视化

监控接口设计原则
实时监控接口需具备低延迟、高可用和可扩展性。采用 RESTful 风格设计,返回结构化 JSON 数据,便于前端解析与展示。
// 示例:Gin 框架实现的健康检查接口
func HealthHandler(c *gin.Context) {
    c.JSON(200, gin.H{
        "status":   "healthy",
        "timestamp": time.Now().Unix(),
        "service":  "user-service",
    })
}
该接口返回服务健康状态与时间戳,供前端轮询调用。参数 status 表示运行状态,timestamp 用于判断数据新鲜度。
运行状态可视化方案
使用 WebSocket 推送实时指标至前端,结合 ECharts 动态渲染 CPU 使用率、请求延迟等关键指标。
指标名称采集频率数据来源
CPU Usage1sNode Exporter
Request Latency500msAPM Agent

4.4 日志分级输出与异常追踪调试方案

日志级别设计与应用场景
合理的日志分级有助于快速定位问题。通常分为 DEBUG、INFO、WARN、ERROR 和 FATAL 五个级别,分别适用于调试信息、业务流程、潜在风险、运行异常和致命错误。
代码示例:结构化日志输出
logger.Info("user login attempt", 
    zap.String("username", username), 
    zap.Bool("success", success),
    zap.Duration("elapsed", time.Since(start)))
该代码使用 Zap 日志库输出结构化日志,通过键值对形式记录用户登录行为。String 和 Bool 参数增强可读性,Duration 衡量处理耗时,便于后续分析性能瓶颈。
异常追踪机制
结合堆栈捕获与唯一请求ID(如 trace_id),可在分布式系统中串联完整调用链。当 ERROR 日志触发时,自动附加堆栈信息,提升故障复现效率。

第五章:总结与展望

技术演进的实际路径
在微服务架构向云原生转型的过程中,Kubernetes 已成为事实上的编排标准。企业级应用如某大型电商平台通过将原有 Spring Cloud 体系迁移至 Istio 服务网格,实现了跨集群流量的精细化控制。其核心配置如下:
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: product-route
spec:
  hosts:
    - product-service
  http:
    - route:
        - destination:
            host: product-service
            subset: v1
          weight: 80
        - destination:
            host: product-service
            subset: v2
          weight: 20
该配置支持灰度发布,确保新版本上线期间系统稳定性。
未来架构趋势分析
  • Serverless 架构将进一步降低运维复杂度,AWS Lambda 与 Knative 的结合已在部分初创公司中验证可行性;
  • AI 驱动的自动化运维(AIOps)正逐步整合至监控体系,例如使用 Prometheus 指标训练异常检测模型;
  • 边缘计算场景下,轻量级运行时如 containerd 与 WasmEdge 的组合展现出高响应优势。
技术方向典型工具适用场景
服务网格Istio, Linkerd多租户安全隔离
无服务器Knative, OpenFaaS突发流量处理
[用户请求] → API Gateway → Auth Service → [Service Mesh → Function Runtime]
智能家居集中控制管理系统_基于Go语言和Gin框架开发的智能家居API接口_提供IP地址查询更新_NAS设备唤醒关闭_树莓派重启关机_网络设备集中管理_远程控制家庭设备_自动化家居.zip 立即下载

相关推荐

基于Golang语言开发的轻量级MQTT客户端库_支持MQTT311协议规范并提供同步与事件双模式通信机制_实现物联网设备与服务器间的稳定数据传输_集成自动重连保障和连接状态监.zip

基于Golang语言开发的轻量级MQTT客户端库_支持MQTT311协议规范并提供同步与事件双模式通信机制_实现物联网设备与服务器间的稳定数据传输_集成自动重连保障和连接状态监.zip

Go WebSocket + Redis 实现轻量级的订阅和实时消息推送

上一篇介绍了Golang中封装WebSocket的功能,让WebSocket更简单好用和稳定。 这里借助Redis自身的订阅和发布机制和WebSocket结合,实现轻量级的订阅发布和消息推送。本来消息订阅和推送打算用mqtt的,但是这样一来还得有一个MqttBroker代理服务器,或采用网上开源的实现,或使用go语言自己实现个mqtt的broker,这都不够轻量级。 ...

猫哥 的沉淀、积累、总结。天天学习,好好向上...c/c++,嵌入式 linux,Android,HarmonyOS,AIOT) 3221

基于Gin框架深度定制的高效API开发框架_专注于简化API开发流程并提供强大扩展能力_集成错误号管理_统一结构返回_参数校验_异常处理_接口验签_登录验证_日志链路收集_环境配置.zip

基于Gin框架深度定制的高效API开发框架_专注于简化API开发流程并提供强大扩展能力_集成错误号管理_统一结构返回_参数校验_异常处理_接口验签_登录验证_日志链路收集_环境配置.zip

从零搭建物联网数据接收平台,PHP轻量接口实战详解,新手也能快速上手

手把手教你搭建物联网数据接收平台,详解PHP在物联网设备数据上报中的轻量接口实现方法。适用于传感器数据采集、远程监控等场景,基于RESTful设计,部署简单、资源占用低,助力开发者快速构建稳定可靠的数据通道,新手也能轻松上手,值得收藏。

simcode的专栏 754

Zemax实现微透镜阵列光束整形(原理+仿真)

通过Zemax实现微透镜阵列的光场整形仿真。

VJCP_90909Bu0的博客 1万+

游戏资源解包神器NSCB实战:手把手教你提取Switch游戏视频(nsm转MP4)

本文详细介绍了如何使用NSCB工具链从Switch游戏中提取nsm视频和hca音频资源,并将其转换为可编辑的MP4和MP3格式。通过NSC Builder、CriPakTools等工具的分步操作指南,帮助内容创作者高效获取游戏资源,同时提供音视频同步合成、批量处理等高级技巧,为创意素材制作提供完整解决方案。

weixin_29197835的博客 888

树莓派3核心升级解析:板载Wi-Fi与64位处理器如何重塑嵌入式开发体验

在嵌入式开发与创客领域,单板计算机的核心价值在于平衡性能、功耗与连接性。ARM架构处理器作为主流选择,其从32位向64位的演进不仅提升了内存寻址能力,也为复杂计算任务提供了更好的指令集支持。板载无线连接模块(如Wi-Fi与蓝牙)的集成,则从根本上简化了设备联网与外围扩展的工程实践,大幅降低了物联网网关、智能家居控制中心等项目的原型开发门槛。树莓派3(Raspberry Pi 3 Model B)正是这一技术理念的典范,它通过内置802.11n Wi-Fi、蓝牙4.1以及ARMv8四核处理器,在保持经典接口与

congsikuai0611的博客 455

MSDN Win10镜像缺少驱动?这里有全面解决方案

针对MSDN Win10镜像缺少驱动的问题,本文提供了四种解决方案:厂商官网下载驱动程序、利用Windows更新获取驱动、使用第三方驱动更新工具以及使用集成驱动的Win10系统镜像。每种方案都有其优缺点,用户可以根据自己的需求和实际情况选择合适的方案。建议优先考虑官方渠道:官方渠道下载的驱动程序稳定可靠,是解决问题的首选方案。谨慎选择第三方工具:使用第三方工具时,务必选择信誉好、无广告捆绑的工具,并注意保护个人隐私和计算机安全。备份重要数据:在进行系统安装或更新前,务必备份重要数据以防丢失。

nntxthml的博客 1523

(Java+Go双语言架构)高并发场景下接口对接的6个优化策略

解决高并发接口性能瓶颈,本文详解Java与Go对接代码的6大优化策略,涵盖异步通信、数据序列化、连接池管理等核心方法,提升系统稳定性与吞吐量,适用于微服务跨语言调用场景,值得收藏。

StepNexus的博客 471

DeerFlow 系列教程 第二十篇 | 前端定制与二次开发指南

支持的语言定义在locale.tsLocale 检测采用三级降级策略Cookie 优先:检查localeCookie浏览器语言默认值en-US.value;if (locale!DeerFlow 使用管理主题切换,在根布局中通过主题相关的 CSS 变量定义在中(约 10KB)。: boolean;// 是否支持深度思考。

weixin_43674738的博客 223

2025华为杯第二十二届中国研究生数学建模竞赛E题:高速列车轴承智能故障诊断问题 - 完整解题分析+完整MATLAB源码!

🎓 本文收录于 《滚雪球学数学建模》专栏,本专栏专注于从零基础出发,带你循序渐进掌握数学建模的核心方法与思维路径。通过“滚雪球式”学习法,从最简单的生活化案例到经典建模工具,再到省赛、国赛真题实战演练,逐步积累知识与技能,帮助你搭建完整的建模体系。无论你是刚接触建模的新生,还是希望提升科研与竞赛能力的学者与工程师,本专栏都将为你提供一条清晰、高效、可实操的建模成长路线,助力你快速进阶,突破难点,迈向数学建模竞赛与实际应用的更高峰 🚀!

**My Coding Family** 1992

Golang Gin框架mqtt消费者

这里主要是展示一个非常简单的Gin框架下的mqtt消费者,在保持启动后持续轮训消费。BatchProcessing() {} 方法中 for{}中处理数据。消息持续消费,具体处理业务的逻辑代码自己写。viper全局调用yaml文件中的数据。doJYService 业务逻辑代码。redisClient 缓存客户端。

qq_36729594的博客 656

【Frida Android】实战篇4:SSL Pinning 证书绑定绕过 Hook 教程(一)

在前两章中,我们学习了中间人抓包与 Hook 抓包的基础方法,这些方法在理想环境下能够有效获取网络请求数据。但在实际的企业级应用中,出于安全防护需求,很多 APP 会启用证书绑定(SSL Pinning)机制。这种机制会让客户端对服务器证书的校验更为严格,导致常规的抓包方法(即使将 BurpSuite/Charles 证书安装到系统信任区)也无法生效。因此,从本章开始,我们将系统学习 SSL Pinning 机制的绕过技术。SSL Pinning(证书绑定)是客户端校验服务器身份的进阶安全机制。

水滴石穿 1610

手把手教大家书写一个 Mqtt 网关

物联网是现在比较热门的软件领域,众多物联网厂商都有自己的物联网平台,而物联网平台其中一个核心的模块就是 Mqtt 网关。这篇文章的目的是手把手教大家写书写一个 mqtt 网关,后端存储支持 Kafka/Pulsar,支持 mqtt 连接、断链、发送消息、订阅消息

2301_76369560的博客 870

抓包网络调试工具 reqable抓包教程

如果CA根证书未安装成功,网络图标是黄色,点击盾牌图标可以进入CA根证书安装界面,详细步骤请阅读。在API调试中,获取流量是第一步也是最基本的操作,这里讲解下如何使用Reqable获取流量,通俗地讲就是抓包。我们可以选择一个图片请求,双击打开详情面板,能够看到该请求的详细信息。如果系统代理未设置,网络图标是黄色,点击网络图标可以自动设置系统代理。此域名的结构树,可以查看该域名下所有请求的目录结构,点击选择可以查看该请求的详情。首先,需要启用Reqable的调试功能,点击最右上角的。打开浏览器,输入地址。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2558

黑猫带你学eMMC协议第2篇:eMMC部分相关名词释义

1 前言 1.1 声明 本文依据eMMC JEDEC5.1、网络资料及个人工作经验整理而成,如有错误请留言。 本文结合eMMC JEDEC5.1协议手册查看效果更佳。 1.2 本文背景 本文关键词不包括emmc jedec5.1协议第3章节:《Terms and definitions》内容。关于emmc协议层的关键词,直接查阅spec相关章节即可,清晰明了,此处没必要再列出。 本文为本人工作学习中常听到或常用到关乎于emmc/flash的一些关键词合集,没有固定分类,不需要强行记忆,供查询使用。 1.

黑猫奥利奥的博客 7433

【Go云原生微服务实战】:从零搭建高并发系统的核心架构与落地策略

掌握高并发系统构建难题,本文深入讲解Go云原生微服务实战方法,涵盖服务拆分、gRPC通信、容器化部署与自动化运维等核心实践,适用于中大型分布式系统开发。结合真实场景解析性能优化策略,助力开发者快速落地可扩展架构,值得收藏。

ByteVein的博客 1021

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Go语言的物联网

Go语言由谷歌于2007年开发,并在2009年发布开源版。作为一种静态强类型的编程语言,Go语言支持并发编程,通过 goroutines 和 channels 实现轻量级的线程管理。Go的编译速度快、执行效率高,特别适合用于开发高性能的网络应用程序。其简单的语法和丰富的标准库,使得开发者能够快速上手并高效开发。

2501_91201280的博客 461

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

从零搭建PHP物联网网关(支持TCP/UDP/HTTP/MQTT多协议智能路由)

手把手教你用PHP构建物联网网关,实现TCP/UDP/HTTP/MQTT多协议转换与智能路由。适用于工业设备联网、智能家居中控等场景,解决异构网络通信难题。基于PHP的高并发处理能力,提升系统兼容性与稳定性,从零开始轻松搭建,值得收藏。

simcode的专栏 621

gin框架提高篇(三)

ps:将上一模块的代码打包成exe文件,并执行起来,注意端口冲突问题(命令:go build 文件名)

codefan※的博客 713

golang-gin集成viper

golang-gin集成viper

oHeXianRen007的博客 183

物联网视频监控服务(三)-监控服务端 篇

此篇文章主要描述 监控服务端(video_server) 开发部分;

rgc_520_zyl的博客 1299

【Go后台开发第二课】实现go语言下gin框架与MQTT Server的订阅及推送的操作,以实现后续物联网的应用

学习目标: 实现go语言下gin框架与EMQX搭建的MQTT Server的连接、订阅、推送、断开等操作 开发工具: Win10 + goland 正式操作: 1、goLand下创建新功能 ginMqttClientTestProject,并且重新安装gin框架 go get -u github.com/gin-gonic/gin go mod init gin go mod edit -require github.com/gin-gonic/gin@latest 2、安装mqt

yunyin_link的博客 2437

PHP实现微服务网关的8个关键技术点(附完整代码示例)

掌握PHP在微服务架构中的API网关实现,解决服务聚合与统一鉴权难题。涵盖路由转发、负载均衡、JWT验证等8个关键技术点,附可运行代码示例,适用于中小型系统架构升级,值得收藏。

PixelFlow的博客 930

Go-MQTT使用

因为在前端、java中一直使用paho的mqtt所以在go中也继续使用,原理是一致的,使用其他版本框架也是一样的,本文使用paho的进行演示再次还可以下载一个好用的mqtt桌面链接工具。

zhaohan___的博客 897
上一篇: 【PHP智能家居灯光控制接口开发全攻略】:从零搭建高稳定性物联网照明系统
下一篇: 【PHP与工业通信协议深度整合】:实现秒级数据上传的终极方案
FastProceed
博客等级 码龄1年 143粉丝 2005原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值