Added redis. Chat io msg to redis list.
This commit is contained in:
		
							
								
								
									
										39
									
								
								api/redis.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								api/redis.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | |||||||
|  | const redis = require("redis") | ||||||
|  | const client = redis.createClient() | ||||||
|  |  | ||||||
|  |  | ||||||
|  | const addMessage = message => { | ||||||
|  |   const json = JSON.stringify(message); | ||||||
|  |   client.rpush("messages", json) | ||||||
|  |  | ||||||
|  |   return message | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const history = (skip=0, take=20) => { | ||||||
|  |   skip = (1 + skip) * -1     // negate to get FIFO | ||||||
|  |   return new Promise((resolve, reject) => client.lrange("messages", (skip * take), skip, (err, data) => { | ||||||
|  |     if (err) { | ||||||
|  |       console.log(err); | ||||||
|  |       reject(err); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     data = data.map(data => JSON.parse(data)); | ||||||
|  |     resolve(data); | ||||||
|  |   })) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const clearHistory = () => { | ||||||
|  |   return new Promise((resolve, reject) => client.del("messages", (err, success) => { | ||||||
|  |     if (err) { | ||||||
|  |       console.log(err); | ||||||
|  |       reject(err); | ||||||
|  |     } | ||||||
|  |     resolve(success == 1 ? true : false); | ||||||
|  |   })) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | module.exports = { | ||||||
|  |   addMessage, | ||||||
|  |   history, | ||||||
|  |   clearHistory | ||||||
|  | }; | ||||||
| @@ -62,6 +62,7 @@ | |||||||
|     "mini-css-extract-plugin": "~0.5", |     "mini-css-extract-plugin": "~0.5", | ||||||
|     "optimize-css-assets-webpack-plugin": "~3.2", |     "optimize-css-assets-webpack-plugin": "~3.2", | ||||||
|     "pm2": "^4.2.3", |     "pm2": "^4.2.3", | ||||||
|  |     "redis": "^3.0.2", | ||||||
|     "sass-loader": "~7.1", |     "sass-loader": "~7.1", | ||||||
|     "uglifyjs-webpack-plugin": "~1.2", |     "uglifyjs-webpack-plugin": "~1.2", | ||||||
|     "url-loader": "^2.2.0", |     "url-loader": "^2.2.0", | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user