c-websocket
v1.0.4
Published
uniapp项目,二次封装uni的WebSocket(SocketTask);支持重连,发送心跳,连接多个(微信小程序1.7.0及以上最多5个)
Maintainers
Readme
欢迎使用 c-websocket
注意事项 微信小程序需要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|否|执行完的回调|
