utils-uniapp 1.2.3 → 1.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/WebSocketClient/index.d.ts +95 -0
- package/lib/WebSocketClient/index.js +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
// WebSocketClient.d.ts
|
|
2
|
+
export declare class WebSocketClient {
|
|
3
|
+
/**
|
|
4
|
+
* @param url websocket地址
|
|
5
|
+
* @param options 配置项
|
|
6
|
+
*/
|
|
7
|
+
constructor(url: string, options?: WebSocketClientOptions);
|
|
8
|
+
|
|
9
|
+
url: string;
|
|
10
|
+
reconnectDelay: number;
|
|
11
|
+
heartbeatInterval: number;
|
|
12
|
+
heartbeatTimeout: number;
|
|
13
|
+
heartbeatMsg: string;
|
|
14
|
+
maxReconnect: number;
|
|
15
|
+
socketTask: UniApp.SocketTask | null;
|
|
16
|
+
isConnected: boolean;
|
|
17
|
+
heartbeatTimer: number | null;
|
|
18
|
+
heartbeatTimeoutTimer: number | null;
|
|
19
|
+
reconnectTimer: number | null;
|
|
20
|
+
reconnectCount: number;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* 注册事件监听,替代 addEventListener
|
|
24
|
+
* @param event 事件名 open | message | close | error
|
|
25
|
+
* @param fn 回调函数
|
|
26
|
+
*/
|
|
27
|
+
on(event: 'open', fn: (res: UniApp.OnSocketOpenCallbackResult) => void): this;
|
|
28
|
+
on(event: 'message', fn: (res: UniApp.OnSocketMessageCallbackResult) => void): this;
|
|
29
|
+
on(event: 'close', fn: (res: UniApp.OnSocketCloseCallbackResult) => void): this;
|
|
30
|
+
on(event: 'error', fn: (err: UniApp.GeneralCallbackResult) => void): this;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* 移除事件监听
|
|
34
|
+
* @param event 事件名
|
|
35
|
+
* @param fn 回调函数
|
|
36
|
+
*/
|
|
37
|
+
off(event: 'open' | 'message' | 'close' | 'error', fn: Function): this;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* 内部触发事件(外部一般不用)
|
|
41
|
+
*/
|
|
42
|
+
emit(event: 'open' | 'message' | 'close' | 'error', ...args: any[]): void;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* 建立连接
|
|
46
|
+
*/
|
|
47
|
+
connect(): this;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* 发送消息,支持字符串/ArrayBuffer
|
|
51
|
+
* @param message 发送的数据
|
|
52
|
+
*/
|
|
53
|
+
send(message: string | ArrayBuffer): this;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* 开启心跳
|
|
57
|
+
*/
|
|
58
|
+
startHeartbeat(): void;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* 停止心跳
|
|
62
|
+
*/
|
|
63
|
+
stopHeartbeat(): void;
|
|
64
|
+
|
|
65
|
+
startHeartbeatTimeout(): void;
|
|
66
|
+
resetHeartbeatTimeout(): void;
|
|
67
|
+
clearHeartbeatTimeout(): void;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* 自动重连
|
|
71
|
+
*/
|
|
72
|
+
reconnect(): void;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* 关闭连接
|
|
76
|
+
* @param code 关闭码
|
|
77
|
+
* @param reason 关闭原因
|
|
78
|
+
*/
|
|
79
|
+
close(code?: number, reason?: string): void;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export declare interface WebSocketClientOptions {
|
|
83
|
+
/** 重连间隔 ms 默认1000 */
|
|
84
|
+
reconnectDelay?: number;
|
|
85
|
+
/** 心跳发送间隔 ms 默认30000 */
|
|
86
|
+
heartbeatInterval?: number;
|
|
87
|
+
/** 心跳超时时间 ms 默认10000,收不到服务端消息则断开 */
|
|
88
|
+
heartbeatTimeout?: number;
|
|
89
|
+
/** 心跳消息 默认ping */
|
|
90
|
+
heartbeatMsg?: string;
|
|
91
|
+
/** 最大重连次数,-1无限重连 */
|
|
92
|
+
maxReconnect?: number;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export default WebSocketClient;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("../_rollupPluginBabelHelpers-63255c86.js");var r=function(){function o(n){var e,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};a._classCallCheck(this,o),this.url=n,this.reconnectDelay=t.reconnectDelay||1e3,this.heartbeatInterval=t.heartbeatInterval||3e4,this.heartbeatTimeout=t.heartbeatTimeout||1e4,this.heartbeatMsg=t.heartbeatMsg||"ping",this.maxReconnect=(e=t.maxReconnect)!==null&&e!==void 0?e:-1,this.socketTask=null,this.isConnected=!1,this.heartbeatTimer=null,this.heartbeatTimeoutTimer=null,this.reconnectTimer=null,this.reconnectCount=0,this.events={open:[],message:[],close:[],error:[]}}return a._createClass(o,[{key:"on",value:function(e,t){return this.events[e]&&this.events[e].push(t),this}},{key:"off",value:function(e,t){if(!this.events[e])return this;var s=this.events[e].indexOf(t);return s>-1&&this.events[e].splice(s,1),this}},{key:"emit",value:function(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),i=1;i<t;i++)s[i-1]=arguments[i];this.events[e]&&this.events[e].forEach(function(c){return c.apply(void 0,s)})}},{key:"connect",value:function(){var e=this;return this.socketTask&&(this.socketTask.close(),this.socketTask=null),this.socketTask=uni.connectSocket({url:this.url,complete:function(){}}),this.socketTask.onOpen(function(t){e.isConnected=!0,e.reconnectCount=0,console.log("Connection established"),e.emit("open",t),e.startHeartbeat()}),this.socketTask.onMessage(function(t){e.resetHeartbeatTimeout(),e.emit("message",t)}),this.socketTask.onClose(function(t){e.isConnected=!1,console.log("Connection closed",t),e.stopHeartbeat(),e.emit("close",t),e.reconnect()}),this.socketTask.onError(function(t){console.error("WebSocket error: ",t),e.emit("error",t),e.isConnected&&e.stopHeartbeat(),e.socketTask&&e.socketTask.close()}),this}},{key:"send",value:function(e){return this.isConnected&&this.socketTask?this.socketTask.send({data:e}):console.error("WebSocket is not connected"),this}},{key:"startHeartbeat",value:function(){var e=this;this.stopHeartbeat(),this.heartbeatTimer=setInterval(function(){e.isConnected&&(e.send(e.heartbeatMsg),e.startHeartbeatTimeout())},this.heartbeatInterval)}},{key:"stopHeartbeat",value:function(){this.heartbeatTimer&&(clearInterval(this.heartbeatTimer),this.heartbeatTimer=null),this.clearHeartbeatTimeout()}},{key:"startHeartbeatTimeout",value:function(){var e=this;this.clearHeartbeatTimeout(),this.heartbeatTimeoutTimer=setTimeout(function(){console.warn("Heartbeat timeout, close socket"),e.socketTask&&e.socketTask.close()},this.heartbeatTimeout)}},{key:"resetHeartbeatTimeout",value:function(){this.clearHeartbeatTimeout()}},{key:"clearHeartbeatTimeout",value:function(){this.heartbeatTimeoutTimer&&(clearTimeout(this.heartbeatTimeoutTimer),this.heartbeatTimeoutTimer=null)}},{key:"reconnect",value:function(){var e=this;if(!this.isConnected){if(this.maxReconnect!==-1&&this.reconnectCount>=this.maxReconnect){console.log("Reach max reconnect count, stop reconnect");return}this.reconnectTimer&&clearTimeout(this.reconnectTimer),this.reconnectCount+=1,console.log("Reconnecting in ".concat(this.reconnectDelay/1e3," seconds... count:").concat(this.reconnectCount)),this.reconnectTimer=setTimeout(function(){e.connect()},this.reconnectDelay)}}},{key:"close",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1e3,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";this.stopHeartbeat(),this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.reconnectCount=0,this.socketTask&&this.socketTask.close({code:e,reason:t})}}])}();exports.WebSocketClient=r;exports.default=r;
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./aliPay/index.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./aliPay/index.js"),a=require("./array/index.js"),n=require("./cache/index.js"),c=require("./date/index.js"),r=require("./fs/index.js"),g=require("./getLocation/index.js"),o=require("./http/index.js"),e=require("./magic/index.js"),s=require("./object/index.js"),t=require("./pageStack/index.js"),i=require("./validate/index.js"),l=require("./WebSocketClient/index.js"),u=require("./index-2cb7f964.js");require("./_rollupPluginBabelHelpers-63255c86.js");var P=require("./lodash");Object.assign(exports,P);exports.alipaySubmit=d.alipaySubmit;exports.exchangeArrP=a.exchangeArrP;exports.filterTree=a.filterTree;exports.findTreeItem=a.findTreeItem;exports.flatWithKey=a.flatWithKey;exports.getTreePath=a.getTreePath;exports.groupBy=a.groupBy;exports.reverseForEach=a.reverseForEach;exports.treeItemSetParent=a.treeItemSetParent;exports.StorageCache=n.StorageCache;exports.localCache=n.localCache;exports.sessionCache=n.sessionCache;exports.dateFormat=c.dateFormat;exports.getDate=c.getDate;exports.$fs=r.$fs;exports.chooseImg=r.chooseImg;exports.getArraybufferTempPath=r.getArraybufferTempPath;exports.getImgBase64Prefix=r.getImgBase64Prefix;exports.readFile=r.readFile;exports.saveImageToPhotosAlbum=r.saveImageToPhotosAlbum;exports.writeFile=r.writeFile;exports.getLocation=g.getLocation;exports.openLocation=g.openLocation;exports.CONTENT_TYPES=o.CONTENT_TYPES;exports.CancelToken=o.CancelToken;exports.createDownloadFile=o.createDownloadFile;exports.createRequest=o.createRequest;exports.createUploadFile=o.createUploadFile;exports.promisifyRequest=o.promisifyRequest;exports.compareVersion=e.compareVersion;exports.compose=e.compose;exports.composeAsync=e.composeAsync;exports.debounce=e.debounce;exports.debouncePromise=e.debouncePromise;exports.decodeURIParams=e.decodeURIParams;exports.encodeURIParams=e.encodeURIParams;exports.getOnLoadParams=e.getOnLoadParams;exports.getPascalCase=e.getPascalCase;exports.getQueryParams=e.getQueryParams;exports.getQueryParamsFromHash=e.getQueryParamsFromHash;exports.getQueryParamsFromSearch=e.getQueryParamsFromSearch;exports.getRandom=e.getRandom;exports.getRandomStr=e.getRandomStr;exports.pipe=e.pipe;exports.pipeAsync=e.pipeAsync;exports.randomColor=e.randomColor;exports.throttle=e.throttle;exports.toQueryString=e.toQueryString;exports.cloneDeepWithDescriptors=s.cloneDeepWithDescriptors;exports.getRawType=s.getRawType;exports.hasOwnProperty=s.hasOwnProperty;exports.backToRoute=t.backToRoute;exports.findPageByFullPath=t.findPageByFullPath;exports.findPageByRoute=t.findPageByRoute;exports.getCurrentPage=t.getCurrentPage;exports.getCurrentPageOptions=t.getCurrentPageOptions;exports.getCurrentRoute=t.getCurrentRoute;exports.getPageStack=t.getPageStack;exports.getPageVm=t.getPageVm;exports.getPrevPage=t.getPrevPage;exports.getPrevRoute=t.getPrevRoute;exports.isExternal=i.isExternal;exports.validDate=i.validDate;exports.validIDCard=i.validIDCard;exports.validPhone=i.validPhone;exports.validPostalCode=i.validPostalCode;exports.validURL=i.validURL;exports.WebSocketClient=l.WebSocketClient;exports.wx=u.index;
|