Commit a929e649 by zCaesar

edit msg count

parent af9c7f40
......@@ -15,11 +15,12 @@ module.exports = function (options = {}) {
console.log(req.body);
}
var topic = req.body.topic;
// save redis
require('./redis/on_message').on_message_redis(req.body.client_id, req.body.payload).then(status => {
require('./redis/on_message').on_message_redis(req.body.client_id, req.body.payload, topic).then(status => {
if (status) {
var authstatus;
var topic = req.body.topic;
var cachekey = 'pub:' + req.body.client_id + ':' + req.body.username + ':' + topic;
var authstatus = cache.get(cachekey);
......
var Redis = require('ioredis')
var redis = new Redis()
function on_message_redis(deviceid, payload) { // first time to access on authhook auth_on_register
function on_message_redis(deviceid, payload, topic) { // first time to access on authhook auth_on_register
return new Promise((resolve, reject) => {
if (deviceid.indexOf('mqtt') === 0 || deviceid.length !== 36) {
console.log(deviceid)
resolve(true)
}
else {
var information = setValue(deviceid, payload)
var information = setValue(deviceid, payload, topic)
redis.hincrby(information.keys, 'actual_message_count', 1)
redis.hincrby(information.keys, 'charged_message_count', information.charged_message_count)
redis.hincrby(information.keys, 'total_message_size', information.total_message_size)
......@@ -25,17 +25,17 @@ function on_message_redis(deviceid, payload) { // first time to access on authho
}
module.exports.on_message_redis = on_message_redis
function setValue(deviceid, payload) {
function setValue(deviceid, payload, topic) {
var dateNow = Math.floor(Date.now() / 1000)
var keys = 'deviceid:' + deviceid
var last_publish = dateNow
var msg_count_size = payload.length * 3 / 4
var total_message_size = (payload.length + topic.length) * (3 / 4)
var msg_count_size = total_message_size
var charged_message_count = 1
while (msg_count_size > 5000) {
charged_message_count += 1
msg_count_size = (payload.length * 3 / 4) - 5000
msg_count_size = msg_count_size - 5000
}
var total_message_size = payload.length * 3 / 4
return {
keys: keys,
last_publish: last_publish,
......
......@@ -10,6 +10,7 @@ function on_register_redis(deviceid) { // first time to access on authhook auth_
var information = setValue(deviceid)
redis.hdel(information.keys, 'offline_on')
redis.hset(information.keys, 'status', information.status, 'register_on', information.register_on, 'last_check', information.last_check, function (err, res) {
console.log(res)
if (!res) {
deviceUsageCount()
resolve(!res) // 0 is ok, 1 is no => if ok is 0 then not 0 = 1
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment