def handle_voip_message(msg): obj = json.loads(msg) appid = obj["appid"] sender = obj["sender"] receiver = obj["receiver"] appname = get_title(appid) sender_name = user.get_user_name(rds, appid, sender) u = user.get_user(rds, appid, receiver) if u is None: logging.info("uid:%d nonexist", receiver) return #找出最近绑定的token ts = max(u.apns_timestamp, u.xg_timestamp, u.ng_timestamp, u.mi_timestamp, u.hw_timestamp, u.gcm_timestamp, u.ali_timestamp) if sender_name: sender_name = sender_name.decode("utf8") content = "%s:%s"%(sender_name, u"请求与你通话") else: content = u"你的朋友请求与你通话" if u.apns_device_token and u.apns_timestamp == ts: sound = "apns.caf" badge = 0 ios_push(appid, u.apns_device_token, content, badge, sound, {}) elif u.mi_device_token and u.mi_timestamp == ts: MiPush.push_message(appid, u.mi_device_token, content) elif u.hw_device_token and u.hw_timestamp == ts: HuaWeiPush.push_message(appid, u.hw_device_token, content) elif u.ali_device_token and u.ali_timestamp == ts: AliPush.push_message(appid, appname, u.hw_device_token, content) else: logging.info("uid:%d has't device token", receiver)
def handle_system_message(msg): obj = json.loads(msg) appid = obj["appid"] receiver = obj["receiver"] appname = get_title(appid) try: content_obj = json.loads(obj.get('content')) voip_content = content_obj.get('voip_push') content = content_obj.get('push') if not voip_content and not content: return sound = content_obj.get('sound', 'default') except Exception as e: logging.info("exception:%s", e) return u = user.get_user(rds, appid, receiver) if u is None: logging.info("uid:%d nonexist", receiver) return #找出最近绑定的token ts = max(u.apns_timestamp, u.xg_timestamp, u.ng_timestamp, u.mi_timestamp, u.hw_timestamp, u.gcm_timestamp, u.ali_timestamp) if u.apns_device_token and u.apns_timestamp == ts: if voip_content and u.pushkit_device_token: IOSPush.voip_push(appid, u.pushkit_device_token, voip_content) elif content: IOSPush.push(appid, u.apns_device_token, content, sound=sound, badge=u.unread + 1) user.set_user_unread(rds, appid, receiver, u.unread + 1) return if not content: return if u.mi_device_token and u.mi_timestamp == ts: MiPush.push_message(appid, u.mi_device_token, content) elif u.hw_device_token and u.hw_timestamp == ts: HuaWeiPush.push_message(appid, u.hw_device_token, content) else: logging.info("uid:%d has't device token", receiver)
if voip_content and u.pushkit_device_token: IOSPush.voip_push(appid, u.pushkit_device_token, voip_content) elif content: IOSPush.push(appid, u.apns_device_token, content, sound=sound, badge=u.unread + 1) user.set_user_unread(rds, appid, receiver, u.unread + 1) return if not content: return if u.mi_device_token and u.mi_timestamp == ts: MiPush.push_message(appid, u.mi_device_token, content) elif u.hw_device_token and u.hw_timestamp == ts: HuaWeiPush.push_message(appid, u.hw_device_token, content) elif u.ali_device_token and u.ali_timestamp == ts: AliPush.push_message(appid, appname, u.hw_device_token, content) else: logging.info("uid:%d has't device token", receiver) def receive_offline_message(): """ 等待100ms,批量发送推送 """ while True: logging.debug("waiting...")