MQTT在react-native中的运行

本文深入解析MQTT协议的基本概念与运作机制,包括发布/订阅模式、角色定义及核心方法。同时,提供了使用React Native实现MQTT客户端的具体步骤,涵盖安装、配置、连接、订阅与消息处理等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mqtt

  1、什么是mqtt?

  MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,轻量,高效,具体,请参考菜鸟教程 : https://www.runoob.com/w3cnote/mqtt-intro.html

  2、mqtt的几个重要概念

  • MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)
  • MQTT传输的消息分为:主题(Topic)和负载(payload)

  3、mqtt的几个方法

  • (1)Connect。等待与服务器建立连接。
  • (2)Disconnect。等待MQTT客户端完成所做的工作,并与服务器断开TCP/IP会话。
  • (3)Subscribe。等待完成订阅。
  • (4)UnSubscribe。等待服务器取消客户端的一个或多个topics订阅。
  • (5)Publish。MQTT客户端发送消息请求,发送完成后返回应用程序线程。

开始

  1、地址https://github.com/Introvertuous/react_native_mqtt.git

  2、安装

yarn add react_native_mqtt

  3、使用

  

import init from 'react_native_mqtt';
import AsyncStorage from '@react-native-community/async-storage';

init({
  size: 10000,
  storageBackend: AsyncStorage,
  defaultExpires: 1000 * 3600 * 24,
  enableCache: true,
  reconnect: true,
  sync: {}
});


第一步:创建
// 地址,端口,路径(这么写就行了),connectId(随便写)  :地址和端口,都是后台给,或者你自己弄个mqtt的服务
let client = new Paho.MQTT.Client('192.168.0.63', 8083, '/mqtt', '/mqttjs_db6017d322')


第二步:连接,暂时有一个参数,2个方法:成功,失败
client.connect({
      useSSL: false,
      onSuccess: onConnect,
      onFailure:(e)=>{ console.log('失败'); console.log(e); }
});
// 成功后需要发送主题 ,就是一个接口的路径类似
function onConnect(){
    console.log('成功');
    client.subscribe(‘/fangtao’);
}
第三步:断掉
client.onConnectionLost = onConnectionLost;

function onConnectionLost (responseObject) {
    if (responseObject.errorCode !== 0) {
      console.log('onConnectionLost:' + responseObject.errorMessage);
    }
  }

第四步:接收消息
client.onMessageArrived = onMessageArrived;

function onMessageArrived (message) {
    console.log('消息:' + message.payloadString);
  }

感受一下

run起来,连接成功

 

 后台推送一个消息过来

 

 看看前台接收到没?

 

 成功!

 

转载于:https://www.cnblogs.com/founderswitch/p/10791931.html

我的项目是react native0.68版本的react-native-sunmi-inner-printer这个依赖需要那个版本能够兼容我的项目 以下是我的json文件中的一段 "dependencies": { "@ant-design/icons-react-native": "^2.3.2", "@ant-design/react-native": "^5.0.1", "@react-native-async-storage/async-storage": "^1.19.0", "@react-native-community/cameraroll": "^4.0.0", "@react-native-community/masked-view": "0.1.11", "@react-native-community/segmented-control": "^2.1.1", "@react-native-community/slider": "^3.0.3", "@react-native-community/viewpager": "^4.1.6", "@react-native-picker/picker": "^1.16.8", "@react-navigation/native": "^6.1.7", "@react-navigation/native-stack": "^6.9.12", "@rneui/base": "^4.0.0-rc.7", "@rneui/themed": "^4.0.0-rc.8", "@taoqf/react-native-mqtt": "^3.0.4", "d3-shape": "^1.3.7", "minio": "^7.0.15", "react": "17.0.2", "react-dom": "^17.0.2", "react-native": "0.68.0", "react-native-background-timer": "^2.4.1", "react-native-device-info": "^8.1.3", "react-native-elements": "^1.2.7", "react-native-exception-handler": "^2.10.10", "react-native-fs": "^2.18.0", "react-native-gesture-handler": "^1.10.3", "react-native-get-location": "^2.1.0", "react-native-get-random-values": "^1.4.0", "react-native-image-picker": "^3.8.1", "react-native-image-zoom-viewer": "^3.0.1", "react-native-linear-gradient": "^2.8.3", "react-native-modal-dropdown": "^1.0.2", "react-native-permissions": "3.8.0", "react-native-reanimated": "2.14.4", "react-native-safe-area-context": "3.3.2", "react-native-screens": "3.15.0", "react-native-signature-canvas": "^4.1.0", "react-native-signature-capture": "^0.4.12", "react-native-sound": "^0.11.1", "react-native-sqlite-storage": "^4.1.0", "react-native-svg-charts": "5.4.0", "react-native-table-component": "^1.2.2", "react-native-thermal-receipt-printer": "^1.2.0-rc.2", "react-native-vector-icons": "^9.2.0", "react-native-web": "^0.17.1", "react-native-webview": "^11.26.0", "react-redux": "^7.2.0", "redux": "^4.0.5", "redux-thunk": "^2.3.0" }, 我需要安装react-native-sunmi-inner-printer那个版本才能兼容我的项目,安装这个react-native-sunmi-inner-printer能够兼容的版本后还需不需要其他的依赖一块来安装。
08-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值