uniapp原生插件 TCP Socket 使用文档

uniapp原生插件 TCP Socket 使用文档

试了插件市场几个TCP Socket插件都不能实现监听服务器主动断开,于是闲来无事就开发了一款,本插件是一个基于 Netty 实现的 TCP 通信模块,用于在 UniApp 插件中提供 TCP 连接、数据发送和连接管理功能。以下是模块的详细使用说明。


在这里插入图片描述
在这里插入图片描述


功能概述

  1. 打开 TCP 连接:通过指定的主机地址和端口号建立 TCP 连接。
  2. 发送数据:向已建立的 TCP 连接发送数据。
  3. 关闭 TCP 连接:断开当前的 TCP 连接并释放资源。
  4. 检查连接状态:查询当前 TCP 连接的状态。
  5. 设置连接状态:手动设置连接状态(内部使用)。

方法说明

1. 打开 TCP 连接

openTcp(params, callback)
  • 参数

    • params (Object): 包含以下键值对:
    • host (String): 目标主机地址,例如 "127.0.0.1"
    • port (Integer/Double): 目标端口号,例如 8080
    • callback (Function): 回调函数,返回操作结果。
  • 回调返回值

    • code (Number): 状态码,1 表示成功,0 表示失败。
    • msg (String): 操作结果描述信息。
    • type (String): 操作类型,固定为 "CONNECTION_OPENED"
  • 示例

    tcpSocket.openTcp({host: "127.0.0.1",port: 8080
    }, (res) => {console.log(res);
    });
    

2. 发送数据

sendData(params, callback)
  • 参数

    • params (Object): 包含以下键值对:
      • data (String): 要发送的数据内容。
      • callback (Function): 回调函数,返回操作结果。
  • 回调返回值

    • code (Number): 状态码,1 表示成功,0 表示失败。
    • msg (String): 操作结果描述信息。
    • data (String): 发送的数据内容(仅在成功时返回)。
    • type (String): 操作类型,固定为 "DATA_SENT"
  • 示例

    tcpSocket.sendData({data: "Hello, TCP!"
    }, (res) => {console.log(res);
    });
    

3. 关闭 TCP 连接

closeTcp(callback)
  • 参数

    • callback (Function): 回调函数,返回操作结果。
  • 回调返回值

    • code (Number): 状态码,1 表示成功,0 表示失败。
    • msg (String): 操作结果描述信息。
    • type (String): 操作类型,固定为 "CONNECTION_CLOSED"
  • 示例

    tcpSocket.closeTcp((res) => {console.log(res);
    });
    

4. 检查 TCP 连接状态

isTcpConnected(callback)
  • 参数

    • callback (Function): 回调函数,返回操作结果。
  • 回调返回值

    • code (Number): 状态码,1 表示成功,0 表示失败。
    • msg (String): 操作结果描述信息。
    • connected (Boolean): 当前连接状态,true 表示已连接,false 表示未连接。
    • type (String): 操作类型,固定为 "STATUS_CHECKED"
  • 示例

    tcpSocket.isTcpConnected((res) => {console.log(res.connected); // true 或 false
    });
    

注意事项

  1. 异常处理

    • 如果发生异常,所有方法都会通过回调返回错误信息,请确保正确处理异常情况。
  2. 字符编码

    • 数据传输默认使用 GBK 编码,确保发送和接收方的编码一致。
  3. 资源释放

    • 在不再需要 TCP 连接时,务必调用closeTcp方法以释放资源。

示例代码

以下是一个完整的使用示例:

// 打开 TCP 连接
tcpSocket.openTcp({host: "127.0.0.1",port: 8080
}, (res) => {if (res.code === 1) {console.log("TCP 连接已建立");// 发送数据tcpSocket.sendData({data: "Hello, TCP!"}, (sendRes) => {if (sendRes.code === 1) {console.log("数据发送成功");} else {console.error("数据发送失败:", sendRes.msg);}// 关闭 TCP 连接tcpSocket.closeTcp((closeRes) => {console.log(closeRes.msg);});});} else {console.error("无法建立 TCP 连接:", res.msg);}
});

以上是 tcpSocket 模块的完整使用文档。如有其他问题,请参考源码或联系开发者。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/921778.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/921778.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VM中CentOS 7密码重置

重启虚拟机点击e进入内核处理向下划找到UTF-8在后面输入rd.breakctrl X进入单用户模式mount -o remount,rw/sysroot进行挂盘 chroot /sysroot访问系统,并使用passwd修改root密码 出现乱码 输入LANGen touch /.autorelabel 保存配置 exit exit退出等待系统重新打开&…

车规级MOS管AEC-Q101认证的关键参数解读与失效模式-深圳阿赛姆

摘要本文拆解AEC-Q101认证的7大关键测试项(UIS/温度循环/THB等),结合M120N06JC等型号实测数据,解析雪崩失效/栅氧击穿/绑定线脱落等故障机理,附选型核查表一、AEC-Q101认证核心测试项与参数解读1.1 非钳位电感开关测试…

嵌入式铁头山羊stm32-ADC实现软件触发的常规序列的单通道转换-Day25

目录 一、实验目的 二、电路连接 三、实验执行(五步) 1.初始化ADC的IO引脚 2.配置ADC的时钟,注意要小于14MHz 3.根据ADC的编程接口 实现初始化ADC的基本参数 4.配置常规序列并闭合触发输入开关 5.闭合总开关、启动并读取转换结果 四…

多模态模型出现“幻觉”,描述了表格中不存在的内容,如何修正?

在日常工作中,多模态模型的 “幻觉” 问题已成为影响效率的关键痛点 —— 当我们需要模型基于文档生成建议性内容(如行业报告分析、论文数据解读等)时,模型常因无法准确理解文档信息,输出包含 “虚构内容” 的结果&…

Java AI 智能问数:Function调用版如何重塑企业数据决策

Java AI 智能问数:Function调用版如何重塑企业数据决策 在数字化转型浪潮中,企业一把手常面临数据查询的痛点:分析师需编写复杂SQL,业务人员依赖IT支持,决策链条冗长。传统方法效率低下,而自然语言处理&…

AI-调查研究-74-具身智能 机器人学习新突破:元学习与仿真到现实迁移的挑战与机遇

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) AI炼丹日志-31- 千呼万唤始出来 GPT-5 发布!“快的…

劳务员的就业前景如何?

劳务员的就业前景整体较为乐观,受到行业需求、政策支持等因素的积极影响,同时也面临着一些挑战。以下是具体分析:1.就业优势行业需求稳定:建筑行业作为国民经济的支柱产业,持续发展使得对劳务员的需求较为稳定。无论是…

libvirt 新手指南:从零开始掌握虚拟化管理

引言 在云计算、大数据和边缘计算的时代,虚拟化技术已成为 IT 基础设施的核心支柱。它允许我们在单一物理服务器上运行多个虚拟机(Virtual Machine,简称 VM),从而实现资源的高效利用、快速部署和灵活扩展。对于新手来说…

OpenLayers数据源集成 -- 章节三:矢量要素图层详解

前言在前面的文章中,我们学习了OpenLayers的瓦片图层(TileLayer)技术。本文将深入探讨OpenLayers中的矢量要素图层(VectorFeatureLayer)功能,这是WebGIS开发中处理矢量数据、实现交互式地图的核心技术。矢量…

从“能说话”到“会做事”:AI Agent如何重构日常工作流?

从“能说话”到“会做事”:AI Agent如何重构日常工作流?在人工智能飞速发展的当下,AI已从最初简单的语音交互、信息检索进化到了具备自主决策与行动能力的新阶段,其中AI Agent的出现堪称关键转折点。从只能机械“说话”回答问题&a…

随身wifi到底有没有用?

不用绕弯子,直接说清随身WiFi怎么回事,对比完家用WiFi和手机热点,再避坑~一、先明白:随身WiFi到底是啥? 1、简单讲就是「能揣兜里的WiFi发射器」——要么插张物联卡,要么内置流量,能…

MySQL问题8

MySQL深度分页优化思路 常见的3种优化思路如下: 1. 子查询优化方式 示例改写前: SELECT * FROM words WHERE name oee ORDER BY id LIMIT 99999990, 10;这个写法会导致 MySQL 扫描并丢弃前面 99999990 行,效率极低。 示例改写后&#xff…

洛谷 P1249 最大乘积-普及/提高-

P1249 最大乘积 题目描述 一个正整数一般可以分为几个互不相同的自然数的和,如 312312312,413413413,514235142351423,615246152461524。 现在你的任务是将指定的正整数 nnn 分解成若干个互不相同的自然数(也可以不分解…

大学地理信息科学该如何学习才能好就业

一、明确专业特点与就业方向地理信息科学是一门交叉性强、实践性强的学科,融合了地理学、计算机科学、测绘、遥感等多个领域,广泛应用于自然资源管理、城市规划、交通、环境、农业、水利、智慧城市等行业。主要就业方向包括:政府部门/事业单位…

【git】Git 大文件推送失败问题及解决方案

Git 大文件推送失败问题及解决方案 在日常开发中,我们经常会遇到这样的问题: Remote: File [xxx.exe] size 188.156MB, exceeds quota 100MB Remote: Please remove the file[s] from history and try again这是因为 Gitee/GitHub 等平台对单个文件大小有…

国产银河麒麟三维数字沙盘大数据可视化研训推演模拟仿真地理信息系统

国产银河麒麟三维数字沙盘大数据可视化研训推演模拟仿真地理信息系统独立自主知识产权和原创源代码级地理信息系统平台,核心引擎与算法实现全栈国产化,提供从数据采集、处理到可视化分析的全链条自主可控解决方案, 1.2支持国产操作系统&…

GPT Server 文档

目录配置文件的详细说明(后续持续完善)openai_api_server配置控制器(controller)配置模型(worker)配置模型配置大语言模型 示例:QwenEmbedding模型 示例:Conan-embedding-v1TTS文本转语音模型 示例: Spark-TTST2I 文生图模型示例:…

中国移动云电脑一体机-创维LB2004_瑞芯微RK3566_2G+32G_开启ADB ROOT安卓固件-方法3

中国移动云电脑一体机-创维LB2004_瑞芯微RK3566_2G32G_开启ADB ROOT安卓固件-方法3 声明,这个安卓固件root一旦恢复出厂设置,会变回原样,虽然root,但也无法自行操作。 建议按照:中国移动云电脑一体机-创维LB2004_瑞芯微…

设计模式(策略,观察者,单例,工厂方法)

文章目录1. 设计模式核心概念与C语言实现基础2. 常用设计模式详解模式一:策略模式(Strategy Pattern)模式二:观察者模式(Observer Pattern)模式三:单例模式(Singleton Pattern&#…

terraform入门

一、概念 1、Terraform 的“基础设施即代码”是什么 基础设施即代码 (IaC) 工具允许您使用配置文件而非图形用户界面来管理基础设施。通过定义可版本控制、可重用和可共享的资源配置,IaC 允许您以安全、一致且可重复的方式构建、更改和管理您的基础设施。 Terraform…