http服务,异常导出接口
This commit is contained in:
parent
427f28bd57
commit
c10b1e114d
@ -1,3 +1,11 @@
|
|||||||
|
import time
|
||||||
from queue import SimpleQueue
|
from queue import SimpleQueue
|
||||||
|
|
||||||
MESSAGE_QUEUE = SimpleQueue()
|
MESSAGE_QUEUE: "SimpleQueue[MessagePayload]" = SimpleQueue()
|
||||||
|
|
||||||
|
|
||||||
|
class MessagePayload(object):
|
||||||
|
def __init__(self, body: bytes, timestamp: str = ""):
|
||||||
|
self.request_timestamp = timestamp
|
||||||
|
self.body = body
|
||||||
|
self.curretnt_timestamp = time.time()
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
from flask import Flask, request, Response
|
from flask import Flask, request, Response
|
||||||
from handler.common import MESSAGE_QUEUE
|
from handler.common import MESSAGE_QUEUE, MessagePayload
|
||||||
import logging
|
import logging
|
||||||
log = logging.getLogger('werkzeug')
|
log = logging.getLogger('werkzeug')
|
||||||
log.setLevel(logging.ERROR)
|
log.setLevel(logging.ERROR)
|
||||||
@ -10,6 +10,6 @@ app.config['JSON_AS_ASCII'] = False
|
|||||||
|
|
||||||
@app.post("/message")
|
@app.post("/message")
|
||||||
def message_from_mitmproxy():
|
def message_from_mitmproxy():
|
||||||
payload = request.data
|
payload = MessagePayload(request.data, request.headers.get("X-MITM-TS", ""))
|
||||||
MESSAGE_QUEUE.put(payload)
|
MESSAGE_QUEUE.put(payload)
|
||||||
return Response(status=204)
|
return Response(status=204)
|
@ -16,18 +16,16 @@ from output import OUTPUTER
|
|||||||
def loop_queue():
|
def loop_queue():
|
||||||
while True:
|
while True:
|
||||||
message = MESSAGE_QUEUE.get()
|
message = MESSAGE_QUEUE.get()
|
||||||
if type(message) == str:
|
|
||||||
message = message.encode("UTF-8")
|
|
||||||
try:
|
try:
|
||||||
response = message_pb2.Response()
|
response = message_pb2.Response()
|
||||||
wss = wss_pb2.WssResponse()
|
wss = wss_pb2.WssResponse()
|
||||||
wss.ParseFromString(message)
|
wss.ParseFromString(message.body)
|
||||||
decompressed = gzip.decompress(wss.data)
|
decompressed = gzip.decompress(wss.data)
|
||||||
response.ParseFromString(decompressed)
|
response.ParseFromString(decompressed)
|
||||||
decodeMsg(response.messages)
|
decodeMsg(response.messages)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
# 发出去的信息无法解析
|
for output in OUTPUTER:
|
||||||
pass
|
output.error_output("ParseError", message.body, e)
|
||||||
|
|
||||||
def decodeMsg(messages):
|
def decodeMsg(messages):
|
||||||
for message in messages:
|
for message in messages:
|
||||||
@ -62,7 +60,14 @@ def decodeMsg(messages):
|
|||||||
room_user_seq_message.set_payload(message.payload)
|
room_user_seq_message.set_payload(message.payload)
|
||||||
for output in OUTPUTER:
|
for output in OUTPUTER:
|
||||||
output.userseq_output(room_user_seq_message)
|
output.userseq_output(room_user_seq_message)
|
||||||
|
elif message.method == 'WebcastControlMessage':
|
||||||
|
control_message = ControlMessage()
|
||||||
|
control_message.set_payload(message.payload)
|
||||||
|
for output in OUTPUTER:
|
||||||
|
output.control_output(control_message)
|
||||||
else:
|
else:
|
||||||
...
|
for output in OUTPUTER:
|
||||||
|
output.other_output(message.method, message.payload)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(e)
|
for output in OUTPUTER:
|
||||||
|
output.error_output(message.method, message.payload, e)
|
||||||
|
Reference in New Issue
Block a user