You've already forked Douyin_Web_Live
由outputManager管理整个输出类及解析消息、分流消息功能,debug部分配置对接、xml导出部分配置对接
This commit is contained in:
@ -1,73 +0,0 @@
|
||||
import os
|
||||
|
||||
from handler.common import MESSAGE_QUEUE
|
||||
from messages.control import ControlMessage
|
||||
from protobuf import message_pb2
|
||||
from protobuf import wss_pb2
|
||||
import gzip
|
||||
from messages.member import MemberMessage
|
||||
from messages.like import LikeMessage
|
||||
from messages.roomuserseq import RoomUserSeqMessage
|
||||
from messages.gift import GiftMessage
|
||||
from messages.social import SocialMessage
|
||||
from messages.chat import ChatMessage
|
||||
from output import OUTPUTER
|
||||
|
||||
def loop_queue():
|
||||
while True:
|
||||
message = MESSAGE_QUEUE.get()
|
||||
try:
|
||||
response = message_pb2.Response()
|
||||
wss = wss_pb2.WssResponse()
|
||||
wss.ParseFromString(message.body)
|
||||
decompressed = gzip.decompress(wss.data)
|
||||
response.ParseFromString(decompressed)
|
||||
decodeMsg(response.messages)
|
||||
except Exception as e:
|
||||
for output in OUTPUTER:
|
||||
output.error_output("ParseError", message.body, e)
|
||||
|
||||
def decodeMsg(messages):
|
||||
for message in messages:
|
||||
try:
|
||||
if message.method == 'WebcastMemberMessage':
|
||||
member_message = MemberMessage()
|
||||
member_message.set_payload(message.payload)
|
||||
for output in OUTPUTER:
|
||||
output.member_output(member_message)
|
||||
elif message.method == 'WebcastSocialMessage':
|
||||
social_message = SocialMessage()
|
||||
social_message.set_payload(message.payload)
|
||||
for output in OUTPUTER:
|
||||
output.social_output(social_message)
|
||||
elif message.method == 'WebcastChatMessage':
|
||||
chat_message = ChatMessage()
|
||||
chat_message.set_payload(message.payload)
|
||||
for output in OUTPUTER:
|
||||
output.chat_output(chat_message)
|
||||
elif message.method == 'WebcastLikeMessage':
|
||||
like_message = LikeMessage()
|
||||
like_message.set_payload(message.payload)
|
||||
for output in OUTPUTER:
|
||||
output.like_output(like_message)
|
||||
elif message.method == 'WebcastGiftMessage':
|
||||
gift_message = GiftMessage()
|
||||
gift_message.set_payload(message.payload)
|
||||
for output in OUTPUTER:
|
||||
output.gift_output(gift_message)
|
||||
elif message.method == 'WebcastRoomUserSeqMessage':
|
||||
room_user_seq_message = RoomUserSeqMessage()
|
||||
room_user_seq_message.set_payload(message.payload)
|
||||
for output in OUTPUTER:
|
||||
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:
|
||||
for output in OUTPUTER:
|
||||
output.other_output(message.method, message.payload)
|
||||
except Exception as e:
|
||||
for output in OUTPUTER:
|
||||
output.error_output(message.method, message.payload, e)
|
Reference in New Issue
Block a user