From b5ff71c360e61620870d2d6be3f5b2fd64a5f9eb Mon Sep 17 00:00:00 2001 From: Luk Lu Date: Fri, 1 Apr 2022 21:37:28 +0800 Subject: [PATCH] rename index.js to usersocket.js --- package.json | 2 +- index.js => usersocket.js | 57 +++++++++++++++++++-------------------- 2 files changed, 29 insertions(+), 30 deletions(-) rename index.js => usersocket.js (54%) diff --git a/package.json b/package.json index e8c8870..cb73079 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "user.websocket.uniapp", "version": "1.0.0", "description": "uniapp people side websocket", - "main": "index.js", + "main": "usersocket.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, diff --git a/index.js b/usersocket.js similarity index 54% rename from index.js rename to usersocket.js index 6cc132b..59b663a 100644 --- a/index.js +++ b/usersocket.js @@ -1,40 +1,40 @@ -const my = { - socket : undefined, +const my = { + socket: undefined, reconnecting: undefined, - listeners: {} + listeners: {}, } export default { - initSocket(url, reconnect=false){ - if (!my.socket || my.socket.readyState!==my.socket.OPEN && typeof(url)==='string') { + initSocket (url, reconnect = false) { + if (!my.socket || (my.socket.readyState !== my.socket.OPEN && typeof url === 'string')) { console.log('WebSocket connecting...') my.socket = uni.connectSocket({ url: url.replace(/^http/, 'ws'), - complete: ()=>{} + complete: () => {}, }) - my.socket.onOpen((res)=>{ - console.log('WebSocket onOpen: ', res) + my.socket.onOpen((res) => { + console.log('WebSocket onOpen: ', res) clearInterval(my.reconnecting) delete my.reconnecting - + if (reconnect && uni.getStorageSync('_passtoken')) { console.log('Reporting owner for reconnecting socket') - my.socket.send({data: JSON.stringify({skevent:'SOCKET_OWNER', _passtoken: uni.getStorageSync('_passtoken')})}) + my.socket.send({ data: JSON.stringify({ skevent: 'SOCKET_OWNER', _passtoken: uni.getStorageSync('_passtoken') }) }) } - }) - my.socket.onClose((res)=>{ + my.socket.onClose((res) => { console.log('Websocket onClose: ', res) if (!my.reconnecting) - my.reconnecting = setInterval(()=>{ + my.reconnecting = setInterval(() => { console.log(new Date().toJSON(), 'WebSocket reconnecting...') this.initSocket(url, true) }, 5000) // 每5秒尝试重连 }) - my.socket.onError((err)=>{ + my.socket.onError((err) => { console.log('Websocket onError: ', err) }) - my.socket.onMessage(({data})=>{ // 在这里统一分发消息(用户端通常不需要返回结果给服务器,因此不用 rpc 模式,而用 event 模式。 + my.socket.onMessage(({ data }) => { + // 在这里统一分发消息(用户端通常不需要返回结果给服务器,因此不用 rpc 模式,而用 event 模式。 try { let dataObj = JSON.parse(data) console.log('WebSocket onMessage for skevent: ', dataObj.skevent) @@ -42,41 +42,40 @@ export default { for (let listener of listeners) { listener(dataObj) } - }catch(exception){ + } catch (exception) { console.log(new Date().toJSON(), 'unknown message', data) return } - }) } return this }, - closeSocket(){ + closeSocket () { if (my.socket) my.socket.close() - setTimeout(()=>{ + setTimeout(() => { clearInterval(my.reconnecting) - delete my.reconnecting + delete my.reconnecting }, 2000) }, - addListener(skevent, listener){ - if (Array.isArray(my.listeners[skevent]) && typeof(listener)==='function') { + addListener (skevent, listener) { + if (Array.isArray(my.listeners[skevent]) && typeof listener === 'function') { my.listeners[skevent].push(listener) - }else { - my.listeners[skevent]=[listener] + } else { + my.listeners[skevent] = [listener] } return this }, - countListener(skevent){ + countListener (skevent) { if (Array.isArray(my.listeners[skevent])) { return my.listeners[skevent].length } return 0 }, - sendObject(dataObj){ - if (my.socket && my.socket.readyState===my.socket.OPEN){ + sendObject (dataObj) { + if (my.socket && my.socket.readyState === my.socket.OPEN) { my.socket.send({ - data: typeof(dataObj)!=='string' ? JSON.stringify(dataObj) : dataObj + data: typeof dataObj !== 'string' ? JSON.stringify(dataObj) : dataObj, }) } - } + }, }