更新记录

1.0.4(2025-03-04) 下载此版本

修改md

1.0.3(2025-03-03) 下载此版本

去掉多余的注释;修改markdown;

1.0.1(2025-03-03) 下载此版本

修改README.md

查看更多

平台兼容性

uni-app(3.6.5)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
√ √ √ √ √ - - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
√ - - - - - - - - - - -

npm下载量:downloads

欢迎使用 c-websocket,SocketTask支持的平台应该都支持,其他平台需要自己测试

注意事项 微信小程序需要wss开头的socket域名,需要配置socket合法域名,具体操作方法:https://mp.weixin.qq.com打开并登录 --->管理 --->开发管理 --->服务器域名 --->修改

微信小程序1.7.0 及以上版本,最多可以同时存在 5 个 WebSocket 连接。1.7.0 以下版本,一个小程序同时只能有一个 WebSocket 连接,如果当前已存在一个 WebSocket 连接,会自动关闭该连接,并重新创建一个 WebSocket 连接。

安装

// npm安装方式,插件市场导入无需执行此命令。插件市场导入地址:https://ext.dcloud.net.cn/plugin?id=22423
npm install c-websocket

使用方法

// 以下导入方式按照安装方式导入,二选一
import Socket from "@/uni_modules/c-websocket";     // 插件市场导入方法
import Socket from "c-websocket";       // npm导入方法

const testSocket = new Socket("testSocket");
testSocket.setHeartbeatParams({
    time: 10000,    // 多少毫秒发送一次心跳
    data: "心跳"      // 心跳发送内容
});
testSocket.setReconnectParams({
    count: 3,       // 重连次数
    time: 3000      // 多少毫秒重连
})
testSocket.connect({
    url: "wss://...",
    heartbeat: {
        open: true,
        time: 30000,
        data: "心跳"
    },
    onOpen: (res) => {
        // socket监听打开,需要处理的逻辑
        testSocket.send("发送一条消息给后端");
    },
    onMessage: (res) => {
        // socket接收服务端的消息,需要处理的逻辑
    },
    onClose: (res) => {
        // socket监听关闭,需要处理的逻辑
    },
    onError: (err) => {
        // socket监听错误,需要处理的逻辑
    }
})
setTimeout(() => {
    testSocket.close((res) => {
        console.log("socket关闭情况:", res);
    });
}, 10000)

API

new Socket(taskName, closeLog)的taskName和closeLog Props

创建对象

属性 类型 是否必填 说明
taskName String 是 创建的socket任务名,唯一
closeLog Boolean 否 关闭当前插件里所有的打印(console.log),默认false

new Socket().setReconnectParams(params: object)的params Props

设置重连socket参数

属性 类型 是否必填 说明
isExecute Boolean 否 是否可以重连,默认true
count Number 否 重连次数,默认10
time Number 否 多少毫秒重连一次,默认10000

new Socket().setHeartbeatParams(params: object)的params Props

设置心跳的参数

属性 类型 是否必填 说明
open Boolean 否 是否开启心跳,默认true
time Number 否 多少毫秒发送心跳,默认30000
data String/ArrayBuffer 否 心跳发送的内容,默认""

new Socket().connect(params: object)的params Props

创建socket

属性 类型 是否必填 说明
url String 是 uni.connectSocket的url参数
connectParams Object 否 uni.connectSocket的参数对象,注:这个属性填写url会覆盖单独设置的url属性
onOpen Function 否 SocketTask.onOpen,监听 WebSocket 连接打开事件
onMessage Function 否 SocketTask.onMessage,监听 WebSocket 接受到服务器的消息事件
onClose Function 否 SocketTask.onClose,监听 WebSocket 连接关闭事件
onError Function 否 SocketTask.onError,监听 WebSocket 错误事件

new Socket().send(data, closeLog)的data和closeLog Props

给服务端发送的函数

属性 类型 是否必填 说明
data String/ArrayBuffer 是 发送给服务端的内容
closeLog Boolean 否 关闭当前这次发送内容的打印(console.log)

new Socket().close(callback)的callback Props

关闭当前socket的函数

属性 类型 是否必填 说明
callback Function 否 执行完的回调

隐私、权限声明

1. 本插件需要申请的系统权限列表:

无

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

无

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

许可协议

MIT协议