直播的js代码debug解析找到protobuf消息的定义
我们都知道直播的弹幕消息是通过websocket发送的,而且是通过protobuf传输的,那么这里面传输了哪些内容,这个proto文件又要怎么定义?每个消息叫什么,消息里面又包含有哪些字段,每个字段又是什么类型?都可以通过js查看得到。
找到解析入口
上一节我们找到了_decodeFrameOrResponse,这里面的_decode函数就是解析proto协议的:
然后看一下_decode里面是啥?
而这个_decode里面又依赖了一个r.decode的函数,这里才是比较核心的:
如果我没猜错,左侧js文件里面包含schema的都是对应一个proto里面的一个消息:
看到没,这里面就是这个消息的字段和类型,这个消息就是PushFrame消息,然后我们完成复刻到proto中:
然后我们自己定义解析的js代码时否能解析出来:
完美解析出来了,牛不牛🐮
然后我们继续看一下Response里面的内容是啥:
然后继续调试
MemberMessage就找出来了:
ChatMessage消息也有了:
那一共都有哪些消息呢?大概统计了一下:
fo = ((sa = fo || {}).AuthorConnectMessage = "AuthorConnectMessage",sa.LiveCommonMessage = "LiveCommonMessage",sa.LiveInteractionMessage = "LiveInteractionMessage",sa.CouponActivityInfoMessage = "CouponActivityInfoMessage",sa.CouponMetaInfoMessage = "CouponMetaInfoMessage",sa.LiveMarketingMessage = "LiveMarketingMessage",sa.LivePopMessage = "LivePopMessage",sa.CategoryRefreshMessage = "CategoryRefreshMessage",sa.ProductListRefreshMessage = "ProductListRefreshMessage",sa.ProductListUpdateMessage = "ProductListUpdateMessage",sa.ProductRefreshMessage = "ProductRefreshMessage",sa.ProductUpdateMessage = "ProductUpdateMessage",sa.LiveSellerMessage = "LiveSellerMessage",sa.RoomBorderMessage = "RoomBorderMessage",sa.ActivityEmojiGroupsMessage = "ActivityEmojiGroupsMessage",sa.ActivityInteractiveMessage = "ActivityInteractiveMessage",sa.InteractEffectMessage = "InteractEffectMessage",sa.ActivityMagicAsianGamesMessage = "ActivityMagicAsianGamesMessage",sa.MagicGestureActivityMessage = "MagicGestureActivityMessage",sa.ActivityMagicMessage = "ActivityMagicMessage",sa.PixActivityMessage = "PixActivityMessage",sa.PrizeNoticeMessage = "PrizeNoticeMessage",sa.ActivityEffectRefreshMessage = "ActivityEffectRefreshMessage",sa.AdminPrivilegeMessage = "AdminPrivilegeMessage",sa.AdminRecordHandleMessage = "AdminRecordHandleMessage",sa.AdminRecordMessage = "AdminRecordMessage",sa.AnchorBoostMessage = "AnchorBoostMessage",sa.AnchorCommonPopupMessage = "AnchorCommonPopupMessage",sa.AnchorRoomDataChangeMessage = "AnchorRoomDataChangeMessage",sa.PCAnchorRoomDataChangeMessage = "PCAnchorRoomDataChangeMessage",sa.AnswerReviewMessage = "AnswerReviewMessage",sa.AssetEffectUtilMessage = "AssetEffectUtilMessage",sa.AssetMessage = "AssetMessage",sa.AudioBGImgMessage = "AudioBGImgMessage",sa.AudioChatMessage = "AudioChatMessage",sa.AuthorizationNotifyMessage = "AuthorizationNotifyMessage",sa.AutoCoverMessage = "AutoCoverMessage",sa.AvatarRoomLeaveMessage = "AvatarRoomLeaveMessage",sa.AwemeShopExplainMessage = "AwemeShopExplainMessage",sa.BackRecordVideoMessage = "BackRecordVideoMessage",sa.BattleAutoMatchMessage = "BattleAutoMatchMessage",sa.BattleCancelMessage = "BattleCancelMessage",sa.BattleDrawPropMessage = "BattleDrawPropMessage",sa.BattleEffectContainerMessage = "BattleEffectContainerMessage",sa.BattleFeedBackCardMessage = "BattleFeedBackCardMessage",sa.BattleFrontRankMessage = "BattleFrontRankMessage",sa.BattleGuidanceMessage = "BattleGuidanceMessage",sa.BattleInviteMessage = "BattleInviteMessage",sa.BattleModeMessage = "BattleModeMessage",sa.BattleMultiMatchMessage = "BattleMultiMatchMessage",sa.BattleNotifyMessage = "BattleNotifyMessage",sa.BattlePowerContainerMessage = "BattlePowerContainerMessage",sa.BattlePrecisionMatchMessage = "BattlePrecisionMatchMessage",sa.BattleRejectMessage = "BattleRejectMessage",sa.BattleRewardMessage = "BattleRewardMessage",sa.BattleSeasonPKResultMessage = "BattleSeasonPKResultMessage",sa.BattleStateSyncMessage = "BattleStateSyncMessage",sa.BattleTeamTaskAskMessage = "BattleTeamTaskAskMessage",sa.BattleTeamTaskMessage = "BattleTeamTaskMessage",sa.BattleToastMessage = "BattleToastMessage",sa.BattleUseCardMessage = "BattleUseCardMessage",sa.BeginnerGuideMessage = "BeginnerGuideMessage",sa.LinkmicBigEventMessage = "LinkmicBigEventMessage",sa.BridgeMessage = "BridgeMessage",sa.BrotherhoodMessage = "BrotherhoodMessage",sa.CarBallShowMessage = "CarBallShowMessage",sa.CarSeriesInfoMessage = "CarSeriesInfoMessage",sa.CarnivalMessage = "CarnivalMessage",sa.CategoryChangeMessage = "CategoryChangeMessage",sa.ChatCarnivalMessage = "ChatCarnivalMessage",sa.ChatMessage = "ChatMessage",sa.EmojiChatMessage = "EmojiChatMessage",sa.FriendChatMessage = "FriendChatMessage",sa.ChorusMessage = "ChorusMessage",sa.ClientFallbackDynamicMessage = "ClientFallbackDynamicMessage",sa.CNYATaskMessage = "CNYATaskMessage",sa.CommentaryChangeMessage = "CommentaryChangeMessage",sa.CommentsMessage = "CommentsMessage",sa.CommerceSaleMessage = "CommerceSaleMessage",sa.CommerceMessage = "CommerceMessage",sa.CommonCardAreaMessage = "CommonCardAreaMessage",sa.CommonGuideMessage = "CommonGuideMessage",sa.CommonLuckyMoneyMessage = "CommonLuckyMoneyMessage",sa.TaskPanelMessage = "TaskPanelMessage",sa.TaskRewardToastMessage = "TaskRewardToastMessage",sa.CommonPopupMessage = "CommonPopupMessage",sa.CommonPushMessage = "CommonPushMessage",sa.CommonTextMessage = "CommonTextMessage",sa.CommonToastMessage = "CommonToastMessage",sa.ControlMessage = "ControlMessage",sa.WebcastLifeLotteryDrawResultEventMessage = "WebcastLifeLotteryDrawResultEventMessage",sa.DataLifeLiveMessage = "DataLifeLiveMessage",sa.DecorationModifyMessage = "DecorationModifyMessage",sa.DecorationUpdateMessage = "DecorationUpdateMessage",sa.DiggMessage = "DiggMessage",sa.DLiveMessage = "DLiveMessage",sa.OfficialRoomMessage = "OfficialRoomMessage",sa.CeremonyMessage = "CeremonyMessage",sa.RecommendUsersMessage = "RecommendUsersMessage",sa.DolphinSettingUpdateMessage = "DolphinSettingUpdateMessage",sa.DonationMessage = "DonationMessage",sa.DoodleGiftMessage = "DoodleGiftMessage",sa.DoubleLikeHeartMessage = "DoubleLikeHeartMessage",sa.DoubleLikeTopUserMessage = "DoubleLikeTopUserMessage",sa.DouplusIndicatorMessage = "DouplusIndicatorMessage",sa.DouplusMessage = "DouplusMessage",sa.DragonFruitQuizMessage = "DragonFruitQuizMessage",sa.DressAssetMessage = "DressAssetMessage",sa.DriveGiftMessage = "DriveGiftMessage",sa.DrumMessage = "DrumMessage",sa.DutyGiftMessage = "DutyGiftMessage",sa.EasterEggMessage = "EasterEggMessage",sa.EcomFansClubMessage = "EcomFansClubMessage",sa.CornerReachMessage = "CornerReachMessage",sa.TempStateAreaReachMessage = "TempStateAreaReachMessage",sa.EpisodeChatMessage = "EpisodeChatMessage",sa.FansGroupGuideMessage = "FansGroupGuideMessage",sa.FansclubStatisticsMessage = "FansclubStatisticsMessage",sa.FansclubMessage = "FansclubMessage",sa.FansclubReviewMessage = "FansclubReviewMessage",sa.FansclubGuideMessage = "FansclubGuideMessage",sa.FeaturedPublicScreenSettingMessage = "FeaturedPublicScreenSettingMessage",sa.FeedbackActionMessage = "FeedbackActionMessage",sa.FeedbackCardMessage = "FeedbackCardMessage",sa.FireworkMessage = "FireworkMessage",sa.FireworkMultiMessage = "FireworkMultiMessage",sa.FollowGuideMessage = "FollowGuideMessage",sa.BrokerNotifyMessage = "BrokerNotifyMessage",sa.FreeCellGiftMessage = "FreeCellGiftMessage",sa.FreeGiftMessage = "FreeGiftMessage",sa.GamblingStatusChangedMessage = "GamblingStatusChangedMessage",sa.GameChannelMessage = "GameChannelMessage",sa.GameAncAudEntranceMessage = "GameAncAudEntranceMessage",sa.GameAncAudStatusMessage = "GameAncAudStatusMessage",sa.GameAncAudPanelCtrlMessage = "GameAncAudPanelCtrlMessage",sa.GameAncAudDataFromAncMessage = "GameAncAudDataFromAncMessage",sa.GameAncAudDataFromAudMessage = "GameAncAudDataFromAudMessage",sa.GameDevelopMessage = "GameDevelopMessage",sa.GameGiftMessage = "GameGiftMessage",sa.GameGiftStatusMessage = "GameGiftStatusMessage",sa.GameStatusMessage = "GameStatusMessage",sa.GameIntroduceMessage = "GameIntroduceMessage",sa.GameIntroduceShowMessage = "GameIntroduceShowMessage",sa.GameInviteMessage = "GameInviteMessage",sa.GameInviteReplyMessage = "GameInviteReplyMessage",sa.GameOnLivePromoteMessage = "GameOnLivePromoteMessage",sa.OnLivePromoteMessage = "OnLivePromoteMessage",sa.GamePVPMessage = "GamePVPMessage",sa.GameStatusUpdateMessage = "GameStatusUpdateMessage",sa.GameCPAnchorPromoteInfoMessage = "GameCPAnchorPromoteInfoMessage",sa.GameCPBaseMessage = "GameCPBaseMessage",sa.GameCPShowMessage = "GameCPShowMessage",sa.GameCPUserDownloadMessage = "GameCPUserDownloadMessage",sa.GameCPAnchorReminderMessage = "GameCPAnchorReminderMessage",sa.GameCPUserRoomMetaMessage = "GameCPUserRoomMetaMessage",sa.CloudGamingPodMessage = "CloudGamingPodMessage",sa.GamePlayTeamStatusMessage = "GamePlayTeamStatusMessage",sa.GamePlayInviteMessage = "GamePlayInviteMessage",sa.GamePlayStatusMessage = "GamePlayStatusMessage",sa.GiftConsumeRemindMessage = "GiftConsumeRemindMessage",sa.GiftCycleReleaseMessage = "GiftCycleReleaseMessage",sa.ExhibitionTopLeftMessage = "ExhibitionTopLeftMessage",sa.ExhibitionChatMessage = "ExhibitionChatMessage",sa.GiftIconFlashMessage = "GiftIconFlashMessage",sa.GiftTouchMessage = "GiftTouchMessage",sa.GiftUpdateMessage = "GiftUpdateMessage",sa.GiftVoteMessage = "GiftVoteMessage",sa.GiftMessage = "GiftMessage",sa.BindingGiftMessage = "BindingGiftMessage",sa.GradeBuffAnchorShareMessage = "GradeBuffAnchorShareMessage",sa.GroupLiveMemberChangeMessage = "GroupLiveMemberChangeMessage",sa.GroupShowUserUpdateMessage = "GroupShowUserUpdateMessage",sa.GrowthTaskMessage = "GrowthTaskMessage",sa.GuestBattleScoreMessage = "GuestBattleScoreMessage",sa.GuestBattleMessage = "GuestBattleMessage",sa.GuideMessage = "GuideMessage",sa.HighValueUserDataMessage = "HighValueUserDataMessage",sa.HotChatMessage = "HotChatMessage",sa.HotRoomMessage = "HotRoomMessage",sa.ImDeleteMessage = "ImDeleteMessage",sa.InRoomBannerRefreshMessage = "InRoomBannerRefreshMessage",sa.InRoomBannerMessage = "InRoomBannerMessage",sa.InRoomBannerEvent = "InRoomBannerEvent",sa.InfoBoxMessage = "InfoBoxMessage",sa.InstantCommandMessage = "InstantCommandMessage",sa.InteractControlMessage = "InteractControlMessage",sa.InteractOpenDevelopMessage = "InteractOpenDevelopMessage",sa.InteractionInfoMessage = "InteractionInfoMessage",sa.InteractionPlayOpenCloudGameMessage = "InteractionPlayOpenCloudGameMessage",sa.InteractionPlayRealNameAuthMessage = "InteractionPlayRealNameAuthMessage",sa.IntercomInviteMessage = "IntercomInviteMessage",sa.IntercomReplyMessage = "IntercomReplyMessage",sa.ItemShareMessage = "ItemShareMessage",sa.JackfruitMessage = "JackfruitMessage",sa.EcomBuyIntentionMessage = "EcomBuyIntentionMessage",sa.KtvAtmosphereVideoMessage = "KtvAtmosphereVideoMessage",sa.KTVContestSupportMessage = "KTVContestSupportMessage",sa.KtvDressMessage = "KtvDressMessage",sa.KtvGrabSongResultMessage = "KtvGrabSongResultMessage",sa.KTVPlayModeStartMessage = "KTVPlayModeStartMessage",sa.KTVShortVideoCreatedMessage = "KTVShortVideoCreatedMessage",sa.KTVSingerHotRankPosMessage = "KTVSingerHotRankPosMessage",sa.KtvChallengeConfigMessage = "KtvChallengeConfigMessage",sa.KTVChallengeRankMessage = "KTVChallengeRankMessage",sa.KTVChallengeStatusMessage = "KTVChallengeStatusMessage",sa.KTVStartGrabSongMessage = "KTVStartGrabSongMessage",sa.KTVUserSingingHotMessage = "KTVUserSingingHotMessage",sa.KtvMessage = "KtvMessage",sa.LevelUpMessage = "LevelUpMessage",sa.LightGiftMessage = "LightGiftMessage",sa.LikeMessage = "LikeMessage",sa.RoomChannelLinkMessage = "RoomChannelLinkMessage",sa.LinkerContributeMessage = "LinkerContributeMessage",sa.LinkMessage = "LinkMessage",sa.LinkMicBattleTaskMessage = "LinkMicBattleTaskMessage",sa.ChijiNoticeMessage = "ChijiNoticeMessage",sa.LinkMicEnterNoticeMessage = "LinkMicEnterNoticeMessage",sa.LinkMicFriendOnlineMessage = "LinkMicFriendOnlineMessage",sa.LinkMicGuideMessage = "LinkMicGuideMessage",sa.LinkMicKtvBeatRankMessage = "LinkMicKtvBeatRankMessage",sa.LinkMicKtvEffectMessage = "LinkMicKtvEffectMessage",sa.LinkMicMethod = "LinkMicMethod",sa.LinkmicOrderSingListMessage = "LinkmicOrderSingListMessage",sa.LinkmicOrderSingMessage = "LinkmicOrderSingMessage",sa.LinkmicOrderSingScoreMessage = "LinkmicOrderSingScoreMessage",sa.LinkMicPositionMessage = "LinkMicPositionMessage",sa.LinkMicSendEmojiMessage = "LinkMicSendEmojiMessage",sa.LinkSettingNotifyMessage = "LinkSettingNotifyMessage",sa.LinkMicSignalingMethod = "LinkMicSignalingMethod",sa.LinkMicAdventureScoreMessage = "LinkMicAdventureScoreMessage",sa.LinkMicAdventureMessage = "LinkMicAdventureMessage",sa.LinkMicAudienceKtvMessage = "LinkMicAudienceKtvMessage",sa.LinkmicChatMatchMessage = "LinkmicChatMatchMessage",sa.LinkmicEcologyMessage = "LinkmicEcologyMessage",sa.LinkmicEnlargeGuestMessage = "LinkmicEnlargeGuestMessage",sa.LinkmicPlaymodeMessage = "LinkmicPlaymodeMessage",sa.LinkmicProfitEggMessage = "LinkmicProfitEggMessage",sa.LinkmicProfitMessage = "LinkmicProfitMessage",sa.LinkmicReviewMessage = "LinkmicReviewMessage",sa.SelfDisciplinePunchMessage = "SelfDisciplinePunchMessage",sa.LinkmicSelfDisciplineMessage = "LinkmicSelfDisciplineMessage",sa.LinkmicStarWishMessage = "LinkmicStarWishMessage",sa.LinkmicTeamfightScoreMessage = "LinkmicTeamfightScoreMessage",sa.LinkmicTeamfightMessage = "LinkmicTeamfightMessage",sa.LinkmicThemedCompetitionMessage = "LinkmicThemedCompetitionMessage",sa.LiveBindMicroAppMessage = "LiveBindMicroAppMessage",sa.LiveEcomGeneralMessage = "LiveEcomGeneralMessage",sa.LiveEcomMessage = "LiveEcomMessage",sa.LiveMateDemoteMessage = "LiveMateDemoteMessage",sa.ProductChangeMessage = "ProductChangeMessage",sa.LiveShoppingMessage = "LiveShoppingMessage",sa.LiveStreamControlMessage = "LiveStreamControlMessage",sa.LotteryBurstMessage = "LotteryBurstMessage",sa.LotteryMessage = "LotteryMessage",sa.XGLotteryMessage = "XGLotteryMessage",sa.LotteryEventMessage = "LotteryEventMessage",sa.LotteryExpandEventMessage = "LotteryExpandEventMessage",sa.LotteryEventNewMessage = "LotteryEventNewMessage",sa.LotteryCandidateEventMessage = "LotteryCandidateEventMessage",sa.LotteryDrawResultEventMessage = "LotteryDrawResultEventMessage",sa.LuckyBoxTempStatusMessage = "LuckyBoxTempStatusMessage",sa.LuckyBoxMessage = "LuckyBoxMessage",sa.LuckyBoxEndMessage = "LuckyBoxEndMessage",sa.LuckyBoxRewardMessage = "LuckyBoxRewardMessage",sa.LuckyMoneyMessage = "LuckyMoneyMessage",sa.MagicBoxMessage = "MagicBoxMessage",sa.MatchAgainstScoreMessage = "MatchAgainstScoreMessage",sa.MatchCollectionMessage = "MatchCollectionMessage",sa.MatchHighLightPointMessage = "MatchHighLightPointMessage",sa.MatchHostChangeMessage = "MatchHostChangeMessage",sa.MatchHotMessage = "MatchHotMessage",sa.MatchVenueMessage = "MatchVenueMessage",sa.MediaRoomNoticeMessage = "MediaRoomNoticeMessage",sa.MediaLiveReplayVidMessage = "MediaLiveReplayVidMessage",sa.MemberEntranceUpdateMessage = "MemberEntranceUpdateMessage",sa.MemberMessage = "MemberMessage",sa.MotorCustomMessage = "MotorCustomMessage",sa.AuctionMessage = "AuctionMessage",sa.NabobImNoticeMessage = "NabobImNoticeMessage",sa.NobleEnterLeaveMessage = "NobleEnterLeaveMessage",sa.NobleToastMessage = "NobleToastMessage",sa.NobleUpgradeMessage = "NobleUpgradeMessage",sa.NoticeMessage = "NoticeMessage",sa.NotifyEffectMessage = "NotifyEffectMessage",sa.OChannelAnchorMessage = "OChannelAnchorMessage",sa.OChannelUserMessage = "OChannelUserMessage",sa.OChannelModifyMessage = "OChannelModifyMessage",sa.OChannelLastestShowMessage = "OChannelLastestShowMessage",sa.OChannelGrabMicShowMessage = "OChannelGrabMicShowMessage",sa.GameToolCounterMessage = "GameToolCounterMessage",sa.GameToolRoundMessage = "GameToolRoundMessage",sa.PaidLiveDataMessage = "PaidLiveDataMessage",sa.PaidLiveTypeModifyMessage = "PaidLiveTypeModifyMessage",sa.PkActivePushMessage = "PkActivePushMessage",sa.PKIconBubbleMessage = "PKIconBubbleMessage",sa.PlatformAdviseMessage = "PlatformAdviseMessage",sa.PlayDebugEntranceMessage = "PlayDebugEntranceMessage",sa.PopularCardMessage = "PopularCardMessage",sa.PortalMessage = "PortalMessage",sa.PrivilegeScreenChatMessage = "PrivilegeScreenChatMessage",sa.PrivilegeVoiceWaveMessage = "PrivilegeVoiceWaveMessage",sa.ProfileViewMessage = "ProfileViewMessage",sa.ProfitGameMessage = "ProfitGameMessage",sa.ProfitInteractionScoreMessage = "ProfitInteractionScoreMessage",sa.ProfitReportMessage = "ProfitReportMessage",sa.VsProgrammeStateControlMessage = "VsProgrammeStateControlMessage",sa.PromptMessage = "PromptMessage",sa.PropertyNoticeMessage = "PropertyNoticeMessage",sa.PropsBGImgMessage = "PropsBGImgMessage",sa.PublicAreaHoverMessage = "PublicAreaHoverMessage",sa.PullStreamUpdateMessage = "PullStreamUpdateMessage",sa.PushMessage = "PushMessage",sa.FansclubV1PushMessage = "FansclubV1PushMessage",sa.QuizBeginMessage = "QuizBeginMessage",sa.QuizBetMessage = "QuizBetMessage",sa.QuizAnchorStatusMessage = "QuizAnchorStatusMessage",sa.QuizAudienceStatusMessage = "QuizAudienceStatusMessage",sa.QuizStartMessage = "QuizStartMessage",sa.QuizResultMessage = "QuizResultMessage",sa.QuizChangeMessage = "QuizChangeMessage",sa.RankListAwardMessage = "RankListAwardMessage",sa.RankListHourEnterMessage = "RankListHourEnterMessage",sa.RanklistHourEntranceMessage = "RanklistHourEntranceMessage",sa.RealPersonAuditMessage = "RealPersonAuditMessage",sa.RealTimePlayBackMessage = "RealTimePlayBackMessage",sa.BizMessage = "BizMessage",sa.RealtimeStatusNotifyMessage = "RealtimeStatusNotifyMessage",sa.CreateRedPacketMessage = "CreateRedPacketMessage",sa.RushRedPacketMessage = "RushRedPacketMessage",sa.RoomAppConfigMessage = "RoomAppConfigMessage",sa.RoomAuthInterventionVerifyMessage = "RoomAuthInterventionVerifyMessage",sa.RoomAuthMessage = "RoomAuthMessage",sa.RoomBackgroundMessage = "RoomBackgroundMessage",sa.RoomBottomMessage = "RoomBottomMessage",sa.RoomChallengeMessage = "RoomChallengeMessage",sa.RoomChannelAccessMessage = "RoomChannelAccessMessage",sa.RoomChannelAssetMessage = "RoomChannelAssetMessage",sa.RoomChannelChatMessage = "RoomChannelChatMessage",sa.RoomChannelEmojiChatMessage = "RoomChannelEmojiChatMessage",sa.RoomChannelInteractiveEmojiChatMessage = "RoomChannelInteractiveEmojiChatMessage",sa.RoomChannelDisbandMessage = "RoomChannelDisbandMessage",sa.RoomChannelGiftMessage = "RoomChannelGiftMessage",sa.RoomChannelKickOutMessage = "RoomChannelKickOutMessage",sa.ReplyRoomChannelMessage = "ReplyRoomChannelMessage",sa.RoomChannelSaveGroupMessage = "RoomChannelSaveGroupMessage",sa.RoomChannelStateMessage = "RoomChannelStateMessage",sa.RoomChannelSystemMessage = "RoomChannelSystemMessage",sa.RoomChannelRoleMessage = "RoomChannelRoleMessage",sa.RoomConfigMessage = "RoomConfigMessage",sa.RoomDataSyncMessage = "RoomDataSyncMessage",sa.RoomHotSentenceMessage = "RoomHotSentenceMessage",sa.RoomImgMessage = "RoomImgMessage",sa.RoomIntroMessage = "RoomIntroMessage",sa.RoomManageMessage = "RoomManageMessage",sa.RoomRankMessage = "RoomRankMessage",sa.RoomStartMessage = "RoomStartMessage",sa.RoomStatsMessage = "RoomStatsMessage",sa.RoomStreamAdaptationMessage = "RoomStreamAdaptationMessage",sa.RoomTicketMessage = "RoomTicketMessage",sa.RoomTopMessage = "RoomTopMessage",sa.RoomUnionLiveMessage = "RoomUnionLiveMessage",sa.RoomUserSeqMessage = "RoomUserSeqMessage",sa.RoomVerifyMessage = "RoomVerifyMessage",sa.RoomMessage = "RoomMessage",sa.ScheduleMessage = "ScheduleMessage",sa.ScreenChatMessage = "ScreenChatMessage",sa.ShareGuideMessage = "ShareGuideMessage",sa.SharePosterMessage = "SharePosterMessage",sa.ShelfCardAtmosphereMessage = "ShelfCardAtmosphereMessage",sa.ShelfTradeDataMessage = "ShelfTradeDataMessage",sa.ShortTouchAreaMessage = "ShortTouchAreaMessage",sa.ShowChatMessage = "ShowChatMessage",sa.ShowDouPlusNotifyMessage = "ShowDouPlusNotifyMessage",sa.ShowEffectMessage = "ShowEffectMessage",sa.ShowLinkedLiveRoomsMessage = "ShowLinkedLiveRoomsMessage",sa.ShowMultiCameraChangeMessage = "ShowMultiCameraChangeMessage",sa.ShowWatchInfoMessage = "ShowWatchInfoMessage",sa.SkyEyeAnchorSetMessage = "SkyEyeAnchorSetMessage",sa.SocialMessage = "SocialMessage",sa.SpecialPushMessage = "SpecialPushMessage",sa.UpdateKoiRoomStatusMessage = "UpdateKoiRoomStatusMessage",sa.SportsRealTimeMatchDataMessage = "SportsRealTimeMatchDataMessage",sa.SportsQuizMessage = "SportsQuizMessage",sa.StampMessage = "StampMessage",sa.AudienceEntranceMessage = "AudienceEntranceMessage",sa.CustomizedCardMessage = "CustomizedCardMessage",sa.GameCardMessage = "GameCardMessage",sa.MicroAppShelfMessage = "MicroAppShelfMessage",sa.StreamControlMessage = "StreamControlMessage",sa.SubscribeInfoMessage = "SubscribeInfoMessage",sa.SubscribeAssetMessage = "SubscribeAssetMessage",sa.SubscribeVipLiveMessage = "SubscribeVipLiveMessage",sa.SunDailyRankMessage = "SunDailyRankMessage",sa.SyncStreamInfoMessage = "SyncStreamInfoMessage",sa.SyncStreamMessage = "SyncStreamMessage",sa.SystemMessage = "SystemMessage",sa.TaskCenterCommonMessage = "TaskCenterCommonMessage",sa.TaskCenterCommonPersonalMessage = "TaskCenterCommonPersonalMessage",sa.TaskCenterEntranceMessage = "TaskCenterEntranceMessage",sa.TaskMessage = "TaskMessage",sa.TeamPlayApplyListChangeMessage = "TeamPlayApplyListChangeMessage",sa.TeamPlayDebugEntranceMessage = "TeamPlayDebugEntranceMessage",sa.TeamPlayTeamInfoMessage = "TeamPlayTeamInfoMessage",sa.TeamPlayXGameCloseMessage = "TeamPlayXGameCloseMessage",sa.ToastMessage = "ToastMessage",sa.ToolBarControlMessage = "ToolBarControlMessage",sa.ToolbarItemMessage = "ToolbarItemMessage",sa.TopLeftBubbleMessage = "TopLeftBubbleMessage",sa.TrayEffectMessage = "TrayEffectMessage",sa.TurntableBurstMessage = "TurntableBurstMessage",sa.UgLotteryStatusSyncMessage = "UgLotteryStatusSyncMessage",sa.UnionAnchorMessage = "UnionAnchorMessage",sa.UnionGeneralMessage = "UnionGeneralMessage",sa.AnchorAppointmentNumUpdateMessage = "AnchorAppointmentNumUpdateMessage",sa.AppointmentNumberUpdateMessage = "AppointmentNumberUpdateMessage",sa.UpdateFanTicketMessage = "UpdateFanTicketMessage",sa.CoverSuccessMessage = "CoverSuccessMessage",sa.UploadCoverMessage = "UploadCoverMessage",sa.UpperRightWidgetDataMessage = "UpperRightWidgetDataMessage",sa.UserPrivilegeChangeMessage = "UserPrivilegeChangeMessage",sa.UserStatsMessage = "UserStatsMessage",sa.VerificationCodeMessage = "VerificationCodeMessage",sa.VerifyDecisionMessage = "VerifyDecisionMessage",sa.VideoShareMessage = "VideoShareMessage",sa.VIPInfoMessage = "VIPInfoMessage",sa.VIPSeatMessage = "VIPSeatMessage",sa.VirtualGameActorChatMessage = "VirtualGameActorChatMessage",sa.VirtualActorBatchCommandMessage = "VirtualActorBatchCommandMessage",sa.VirtualGameActorCommandMessage = "VirtualGameActorCommandMessage",sa.VsBusinessConfigureMessage = "VsBusinessConfigureMessage",sa.VsInteractiveMessage = "VsInteractiveMessage",sa.VSLinkRoomMessage = "VSLinkRoomMessage",sa.VsPanelMessage = "VsPanelMessage",sa.VsScheduleMessage = "VsScheduleMessage",sa.VsSwitchControlMessage = "VsSwitchControlMessage",sa.WebcastBattleBonusMessage = "WebcastBattleBonusMessage",sa.WebcastBattlePropertyMessage = "WebcastBattlePropertyMessage",sa.FreshmanSupportMessage = "FreshmanSupportMessage",sa.MiniAppLineUpMessage = "MiniAppLineUpMessage",sa.MiniAppCommonMessage = "MiniAppCommonMessage",sa.InteractOpenAppStatusMessage = "InteractOpenAppStatusMessage",sa.InteractOpenChatMessage = "InteractOpenChatMessage",sa.ActivityCouponInvalidMessage = "ActivityCouponInvalidMessage",sa.InteractOpenDiamondMessage = "InteractOpenDiamondMessage",sa.InteractOpenFollowingMessage = "InteractOpenFollowingMessage",sa.PerformanceFinishMessage = "PerformanceFinishMessage",sa.InteractOpenRewardMessage = "InteractOpenRewardMessage",sa.InteractScreenshotMessage = "InteractScreenshotMessage",sa.InteractOpenViolationMessage = "InteractOpenViolationMessage",sa.WebcastPopularCardMessage = "WebcastPopularCardMessage",sa.PreloadMessage = "PreloadMessage",sa.RoomIndicatorMessage = "RoomIndicatorMessage",sa.TrafficSceneMessage = "TrafficSceneMessage",sa.WelfareProjectOperateMessage = "WelfareProjectOperateMessage",sa.WishFinishMessage = "WishFinishMessage",sa.VideoLiveGoodsRcmdMessage = "VideoLiveGoodsRcmdMessage",sa.VideoLiveCouponRcmdMessage = "VideoLiveCouponRcmdMessage",sa.VideoLiveGoodsOrderMessage = "VideoLiveGoodsOrderMessage",sa.GeneralCarnivalMessage = "GeneralCarnivalMessage",sa.LinkMicArmiesMethod = '"LinkMicArmiesMethod"',sa.LinkMicBattleFinishMethod = '"LinkMicBattleFinishMethod"',sa.LinkMicBattlePunishMethod = '"LinkMicBattlePunishMethod"',sa.LinkMicBattleMethod = '"LinkMicBattleMethod"',sa.RoomNotifyMessage = '"RoomNotifyMessage"',
相关文章:

直播的js代码debug解析找到protobuf消息的定义
我们都知道直播的弹幕消息是通过websocket发送的,而且是通过protobuf传输的,那么这里面传输了哪些内容,这个proto文件又要怎么定义?每个消息叫什么,消息里面又包含有哪些字段,每个字段又是什么类型…...
详细学习es6扩展运算符
ES6中的扩展运算符(Spread Operator)是一种非常方便的语法,主要用于将可迭代对象(比如数组、字符串等)展开成多个参数。以下是关于ES6扩展运算符的详细内容: 用法: 在数组字面量中展开数组&am…...

HEC-HMS水文模型教程
原文链接:HEC-HMS水文模型教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247607904&idx5&sn1a210328a3fc8f941b433674d8fe2c85&chksmfa826787cdf5ee91d01b6981ebd89deac3e350d747d0fec45ce2ef75d7cb8009341c6f55114d&token90645021…...

Spring Cloud LoadBalancer基础入门与应用实践
官网地址:https://docs.spring.io/spring-cloud-commons/reference/spring-cloud-commons/loadbalancer.html 【1】概述 Spring Cloud LoadBalancer是由SpringCloud官方提供的一个开源的、简单易用的客户端负载均衡器,它包含在SpringCloud-commons中用…...

layui在表格中嵌入上传按钮,并修改上传进度条
当需要在表格中添加上传文件按钮,并不需要弹出填写表单的框的时候,需要在layui中,用按钮触发文件选择 有一点需要说明的是,layui定义table并不是在定义的标签中渲染,而是在紧接着的标签中渲染,所以要获取实…...

14-10 AIGC 项目生命周期——第一阶段
生成式 AI 项目生命周期的整个过程类似于从范围、选择、调整和对齐/协调模型以及应用程序集成开始的顺序依赖过程。流程表明每个步骤都建立在前一步的基础上。有必要了解每个阶段对于项目的成功都至关重要。 下面的流程图重点介绍了生成式 AI 项目生命周期的第一阶段 1 — “范…...

经典小游戏(一)C实现——三子棋
switch(input){case 1:printf("三子棋\n");//这里先测试是否会执行成功break;case 0:printf("退出游戏\n");break;default :printf("选择错误,请重新选择!\n");break;}}while(input);//直到输入的结果为假,循环才会结束} …...

如何利用AI生成可视化图表(统计图、流程图、思维导图……)免代码一键绘制图表
由于目前的AI生成图表工具存在以下几个方面的问题: 大多AI图表平台是纯英文,对国内用户来说不够友好;部分平台在生成图表前仍需选择图表类型、配置项,操作繁琐;他们仍需一份规整的数据表格,需要人为对数据…...

Firefox 编译指南2024 Windows10-使用Git 管理您的Firefox(五)
1. 引言 在现代软件开发中,版本控制系统(VCS)是不可或缺的工具,它不仅帮助开发者有效管理代码的变化,还支持团队协作与项目管理。Mercurial 是一个高效且易用的分布式版本控制系统,其设计目标是简洁、快速…...

ubuntu 18 虚拟机安装(1)
ubuntu 18 虚拟机安装 ubuntu 18.04.6 Ubuntu 18.04.6 LTS (Bionic Beaver) https://releases.ubuntu.com/bionic/ 参考: 设置固定IP地址 https://blog.csdn.net/wowocpp/article/details/126160428 https://www.jianshu.com/p/1d133c0dec9d ubuntu-18.04.6-l…...

Github 上 Star 数最多的大模型应用基础服务 Dify 深度解读(一)
背景介绍 接触过大模型应用开发的研发同学应该都或多或少地听过 Dify 这个大模型应用基础服务,这个项目自从 2023 年上线以来,截止目前(2024-6)已经获得了 35k 多的 star,是目前大模型应用基础服务中最热门的项目之一…...
XStream导出xml文件
最终效果 pom依赖 <dependency><groupId>com.thoughtworks.xstream</groupId><artifactId>xstream</artifactId><version>1.4.11.1</version></dependency>代码 XStreamUtil 这个直接复制即可 import com.thoughtworks.xst…...
陪诊小程序搭建:构建便捷医疗陪诊服务的创新实践
在当今快节奏的社会,医疗服务与人们的生活息息相关。然而,在医疗体系中,患者往往面临着信息不对称、流程繁琐、陪伴需求得不到满足等问题。为了解决这些问题,我们提出了一种创新的解决方案——陪诊小程序,旨在为患者提…...
0139__TCP协议
全网最详细TCP参数讲解,再也不用担心没有面试机会了_tcp的参数-CSDN博客 TCP协议详解-腾讯云开发者社区-腾讯云 TCP-各种参数 - 简书...

家政小程序的开发,带动市场快速发展,提高家政服务质量
当下生活水平逐渐提高,也增加了年轻人的工作压力,同时老龄化也在日益增加,使得大众对家政的需求日益提高,能力、服务质量高的家政人员能够有效提高大众的生活幸福指数。 但是,传统的家政服务模式存在着效率低、用户与…...
JavaScript高级程序设计(第四版)--学习记录之对象、类与面向对象编程(下)
类 ES6新引入class关键字具有正式定义类的能力。 类定义:类声明和类表达式。 // 类声明 class Person {} // 类表达式 const Animal class {}; 类定义与函数定义的不同: 1:函数声明可以提升,类定义不能 2:函数受函数…...

PDF 生成(5)— 内容页支持由多页面组成
当学习成为了习惯,知识也就变成了常识。 感谢各位的 关注、点赞、收藏和评论。 新视频和文章会第一时间在微信公众号发送,欢迎关注:李永宁lyn 文章已收录到 github 仓库 liyongning/blog,欢迎 Watch 和 Star。 回顾 在本篇开始…...
day 51 115.不同的子序列 583. 两个字符串的删除操作 72. 编辑距离
115. 不同的子序列 给你两个字符串 s 和 t ,统计并返回在 s 的 子序列 中 t 出现的个数,结果需要对 109 7 取模。 示例 1: 输入:s "rabbbit", t "rabbit" 输出:3 解释: 如下所示,…...
http包详解
http包的作用及使用 go的http包是go的web编程的核心内容,go的web框架本质上都是基于http提供的组件进行再度封装。我们来看一下http基本的使用: func main() {http.Handle("/get", GetVal())http.Handle("/hello", Hello())http.H…...

Reqable实战系列:Flutter移动应用抓包调试教程
Flutter应用网络请求调试一直是业内难题,原因在于Dart语言标准库的网络请求不会走Wi-Fi代理,常规通过配置Wi-Fi代理来抓包的方式行不通。这给我们日常开发测试造成了很大的阻碍,严重降低工作效率。因此写一篇教程,讲解如何使用Req…...

Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...