更新记录
1.0.4(2025-03-04) 下载此版本
修改md
1.0.3(2025-03-03) 下载此版本
去掉多余的注释;修改markdown;
1.0.1(2025-03-03) 下载此版本
修改README.md
查看更多平台兼容性
Vue2 | Vue3 |
---|---|
√ | × |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
app-vue | × | √ | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 | 鸿蒙元服务 |
---|---|---|---|---|
× | × | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
√ | √ | √ | √ | √ | × | √ | × | × |
npm下载量:
欢迎使用 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 | 否 | 执行完的回调 |