-slack: interval management
This commit is contained in:
		| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "cuffeo", |   "name": "cuffeo", | ||||||
|   "version": "1.0.5-3", |   "version": "1.0.6", | ||||||
|   "description": "A multi-protocol chatbot library with nearly zero dependencies.", |   "description": "A multi-protocol chatbot library with nearly zero dependencies.", | ||||||
|   "main": "src/index.mjs", |   "main": "src/index.mjs", | ||||||
|   "scripts": {}, |   "scripts": {}, | ||||||
| @@ -17,7 +17,7 @@ | |||||||
|   "author": "Flummi & jkhsjdhjs", |   "author": "Flummi & jkhsjdhjs", | ||||||
|   "license": "MIT", |   "license": "MIT", | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "flumm-fetch-cookies": "^1.3.4" |     "flumm-fetch-cookies": "^1.3.5" | ||||||
|   }, |   }, | ||||||
|   "bugs": { |   "bugs": { | ||||||
|     "url": "https://github.com/kein-Bot/cuffeo/issues" |     "url": "https://github.com/kein-Bot/cuffeo/issues" | ||||||
|   | |||||||
| @@ -12,6 +12,7 @@ export default class slack extends EventEmitter { | |||||||
|     this.network = "Slack"; |     this.network = "Slack"; | ||||||
|     this.api = "https://slack.com/api"; |     this.api = "https://slack.com/api"; | ||||||
|     this.socket = null; |     this.socket = null; | ||||||
|  |     this.interval = null; | ||||||
|     this.server = { |     this.server = { | ||||||
|       set: this.set, |       set: this.set, | ||||||
|       channel: new Map(), |       channel: new Map(), | ||||||
| @@ -56,7 +57,7 @@ export default class slack extends EventEmitter { | |||||||
|       this.server.wss.socket = sock; |       this.server.wss.socket = sock; | ||||||
|       this.server.wss.socket.setDefaultEncoding("utf-8"); |       this.server.wss.socket.setDefaultEncoding("utf-8"); | ||||||
|  |  | ||||||
|       setInterval(async () => await this.ping(), 3e4); // 30 seconds lul |       this.interval = setInterval(async () => await this.ping(), 3e4); // 30 seconds lul | ||||||
|  |  | ||||||
|       this.server.wss.socket.on("data", async data => { |       this.server.wss.socket.on("data", async data => { | ||||||
|         try { |         try { | ||||||
| @@ -104,6 +105,7 @@ export default class slack extends EventEmitter { | |||||||
|   async reconnect() { |   async reconnect() { | ||||||
|     this.server.wss.url = null; |     this.server.wss.url = null; | ||||||
|     this.server.wss.socket = null; |     this.server.wss.socket = null; | ||||||
|  |     clearTimeout(this.interval); | ||||||
|     this.emit("data", [ "info", "reconnecting slack" ]); |     this.emit("data", [ "info", "reconnecting slack" ]); | ||||||
|     return await this.connect(); |     return await this.connect(); | ||||||
|   } |   } | ||||||
| @@ -139,7 +141,7 @@ export default class slack extends EventEmitter { | |||||||
|   } |   } | ||||||
|  |  | ||||||
|   async ping() { |   async ping() { | ||||||
|     await this.write({ |     return await this.write({ | ||||||
|       type: "ping" |       type: "ping" | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
| @@ -171,10 +173,14 @@ export default class slack extends EventEmitter { | |||||||
|     if (!this.server.wss.socket) |     if (!this.server.wss.socket) | ||||||
|       await this.reconnect(); |       await this.reconnect(); | ||||||
|  |  | ||||||
|  |     try { | ||||||
|       this.server.wss.socket.cork(); |       this.server.wss.socket.cork(); | ||||||
|       this.server.wss.socket.write(frame); |       this.server.wss.socket.write(frame); | ||||||
|       this.server.wss.socket.write(Buffer.from(msg)); |       this.server.wss.socket.write(Buffer.from(msg)); | ||||||
|       this.server.wss.socket.uncork(); |       this.server.wss.socket.uncork(); | ||||||
|  |     } catch(err) { | ||||||
|  |       console.error(err); | ||||||
|  |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   reply(tmp) { |   reply(tmp) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user