直播的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"',
相关文章:
![](https://img-blog.csdnimg.cn/direct/5830f9299eab4e31b5f6480d85703932.png)
直播的js代码debug解析找到protobuf消息的定义
我们都知道直播的弹幕消息是通过websocket发送的,而且是通过protobuf传输的,那么这里面传输了哪些内容,这个proto文件又要怎么定义?每个消息叫什么,消息里面又包含有哪些字段,每个字段又是什么类型…...
![](https://www.ngui.cc/images/no-images.jpg)
详细学习es6扩展运算符
ES6中的扩展运算符(Spread Operator)是一种非常方便的语法,主要用于将可迭代对象(比如数组、字符串等)展开成多个参数。以下是关于ES6扩展运算符的详细内容: 用法: 在数组字面量中展开数组&am…...
![](https://img-blog.csdnimg.cn/img_convert/3fc36f100d4d1a4841a1eef8879adba5.png)
HEC-HMS水文模型教程
原文链接:HEC-HMS水文模型教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247607904&idx5&sn1a210328a3fc8f941b433674d8fe2c85&chksmfa826787cdf5ee91d01b6981ebd89deac3e350d747d0fec45ce2ef75d7cb8009341c6f55114d&token90645021…...
![](https://img-blog.csdnimg.cn/direct/44253c3d00ea4c168138480a874afff6.png)
Spring Cloud LoadBalancer基础入门与应用实践
官网地址:https://docs.spring.io/spring-cloud-commons/reference/spring-cloud-commons/loadbalancer.html 【1】概述 Spring Cloud LoadBalancer是由SpringCloud官方提供的一个开源的、简单易用的客户端负载均衡器,它包含在SpringCloud-commons中用…...
![](https://img-blog.csdnimg.cn/direct/7ba831eaa75b4ab3ab003eeb25526675.png)
layui在表格中嵌入上传按钮,并修改上传进度条
当需要在表格中添加上传文件按钮,并不需要弹出填写表单的框的时候,需要在layui中,用按钮触发文件选择 有一点需要说明的是,layui定义table并不是在定义的标签中渲染,而是在紧接着的标签中渲染,所以要获取实…...
![](https://img-blog.csdnimg.cn/img_convert/850e86d00a7af288804f46afe6f392e0.png)
14-10 AIGC 项目生命周期——第一阶段
生成式 AI 项目生命周期的整个过程类似于从范围、选择、调整和对齐/协调模型以及应用程序集成开始的顺序依赖过程。流程表明每个步骤都建立在前一步的基础上。有必要了解每个阶段对于项目的成功都至关重要。 下面的流程图重点介绍了生成式 AI 项目生命周期的第一阶段 1 — “范…...
![](https://img-blog.csdnimg.cn/img_convert/0ba8bcdea9cbbc7373d2fa90b1951a07.png)
经典小游戏(一)C实现——三子棋
switch(input){case 1:printf("三子棋\n");//这里先测试是否会执行成功break;case 0:printf("退出游戏\n");break;default :printf("选择错误,请重新选择!\n");break;}}while(input);//直到输入的结果为假,循环才会结束} …...
![](https://img-blog.csdnimg.cn/direct/a133f9a450b04de59479d56da86bbf27.png)
如何利用AI生成可视化图表(统计图、流程图、思维导图……)免代码一键绘制图表
由于目前的AI生成图表工具存在以下几个方面的问题: 大多AI图表平台是纯英文,对国内用户来说不够友好;部分平台在生成图表前仍需选择图表类型、配置项,操作繁琐;他们仍需一份规整的数据表格,需要人为对数据…...
![](https://img-blog.csdnimg.cn/img_convert/dd27d065399a9cf0f1f860d5e553cde3.png)
Firefox 编译指南2024 Windows10-使用Git 管理您的Firefox(五)
1. 引言 在现代软件开发中,版本控制系统(VCS)是不可或缺的工具,它不仅帮助开发者有效管理代码的变化,还支持团队协作与项目管理。Mercurial 是一个高效且易用的分布式版本控制系统,其设计目标是简洁、快速…...
![](https://img-blog.csdnimg.cn/direct/bb13163ae0874acb9e6f714429732cd9.png)
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…...
![](https://img-blog.csdnimg.cn/direct/31f43ff4310146f0a2ba5d33125f2cff.png)
Github 上 Star 数最多的大模型应用基础服务 Dify 深度解读(一)
背景介绍 接触过大模型应用开发的研发同学应该都或多或少地听过 Dify 这个大模型应用基础服务,这个项目自从 2023 年上线以来,截止目前(2024-6)已经获得了 35k 多的 star,是目前大模型应用基础服务中最热门的项目之一…...
![](https://www.ngui.cc/images/no-images.jpg)
XStream导出xml文件
最终效果 pom依赖 <dependency><groupId>com.thoughtworks.xstream</groupId><artifactId>xstream</artifactId><version>1.4.11.1</version></dependency>代码 XStreamUtil 这个直接复制即可 import com.thoughtworks.xst…...
![](https://www.ngui.cc/images/no-images.jpg)
陪诊小程序搭建:构建便捷医疗陪诊服务的创新实践
在当今快节奏的社会,医疗服务与人们的生活息息相关。然而,在医疗体系中,患者往往面临着信息不对称、流程繁琐、陪伴需求得不到满足等问题。为了解决这些问题,我们提出了一种创新的解决方案——陪诊小程序,旨在为患者提…...
![](https://www.ngui.cc/images/no-images.jpg)
0139__TCP协议
全网最详细TCP参数讲解,再也不用担心没有面试机会了_tcp的参数-CSDN博客 TCP协议详解-腾讯云开发者社区-腾讯云 TCP-各种参数 - 简书...
![](https://img-blog.csdnimg.cn/direct/ebbeed9fdb9a40299d5d07831f22f277.png)
家政小程序的开发,带动市场快速发展,提高家政服务质量
当下生活水平逐渐提高,也增加了年轻人的工作压力,同时老龄化也在日益增加,使得大众对家政的需求日益提高,能力、服务质量高的家政人员能够有效提高大众的生活幸福指数。 但是,传统的家政服务模式存在着效率低、用户与…...
![](https://www.ngui.cc/images/no-images.jpg)
JavaScript高级程序设计(第四版)--学习记录之对象、类与面向对象编程(下)
类 ES6新引入class关键字具有正式定义类的能力。 类定义:类声明和类表达式。 // 类声明 class Person {} // 类表达式 const Animal class {}; 类定义与函数定义的不同: 1:函数声明可以提升,类定义不能 2:函数受函数…...
![](https://img-blog.csdnimg.cn/img_convert/e6cd29de184cec8ad90d4bcc6e8da667.png)
PDF 生成(5)— 内容页支持由多页面组成
当学习成为了习惯,知识也就变成了常识。 感谢各位的 关注、点赞、收藏和评论。 新视频和文章会第一时间在微信公众号发送,欢迎关注:李永宁lyn 文章已收录到 github 仓库 liyongning/blog,欢迎 Watch 和 Star。 回顾 在本篇开始…...
![](https://www.ngui.cc/images/no-images.jpg)
day 51 115.不同的子序列 583. 两个字符串的删除操作 72. 编辑距离
115. 不同的子序列 给你两个字符串 s 和 t ,统计并返回在 s 的 子序列 中 t 出现的个数,结果需要对 109 7 取模。 示例 1: 输入:s "rabbbit", t "rabbit" 输出:3 解释: 如下所示,…...
![](https://www.ngui.cc/images/no-images.jpg)
http包详解
http包的作用及使用 go的http包是go的web编程的核心内容,go的web框架本质上都是基于http提供的组件进行再度封装。我们来看一下http基本的使用: func main() {http.Handle("/get", GetVal())http.Handle("/hello", Hello())http.H…...
![](https://img-blog.csdnimg.cn/direct/35c4672e6994403c87c70570c58b61b5.png)
Reqable实战系列:Flutter移动应用抓包调试教程
Flutter应用网络请求调试一直是业内难题,原因在于Dart语言标准库的网络请求不会走Wi-Fi代理,常规通过配置Wi-Fi代理来抓包的方式行不通。这给我们日常开发测试造成了很大的阻碍,严重降低工作效率。因此写一篇教程,讲解如何使用Req…...
![](https://img-blog.csdnimg.cn/img_convert/881ae43b8c4d421e8619b5f080724ee5.jpeg)
乾元通渠道商中标吴忠市自然灾害应急能力提升项目
近日,乾元通渠道商中标宁夏回族自治区吴忠市自然灾害应急能力提升项目,乾元通作为设备厂家,为项目提供通信指挥类装备(多链路聚合设备)QYT-X1。 青岛乾元通数码科技有限公司作为国家应急产业企业,深耕于数据…...
![](https://img-blog.csdnimg.cn/img_convert/4114dcde3ec47885336499eb68076075.png)
护网蓝队面试
一、sql注入分类 **原理:**没有对用户输入项进行验证和处理直接拼接到查询语句中 查询语句中插⼊恶意SQL代码传递后台sql服务器分析执行 **从注入参数类型分:**数字型注入、字符型注入 **从注入效果分:**报错注入、布尔注入、延时注入、联…...
![](https://www.ngui.cc/images/no-images.jpg)
【高考志愿】金融学
目录 一、金融学类专业概述 二、主要课程 三、就业前景与方向 四、适合人群 五、金融学学科排名 六、总结 高考志愿选择金融学,无疑是一个既充满挑战又极具前景的决策。金融学,作为经济学门类下的重要分支,不仅涵盖了广泛的金融领域知识…...
![](https://www.ngui.cc/images/no-images.jpg)
返利App的用户行为分析与数据驱动决策
返利App的用户行为分析与数据驱动决策 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨返利App中的用户行为分析与数据驱动决策的技术细节和实…...
![](https://www.ngui.cc/images/no-images.jpg)
python基础:高级数据类型:集合
1、集合的定义 集合是一个无序且无重复元素的列表。其定义与数学定义一致。其无序和不重复和字典特征类似,但是无“值”。 2、集合的创建 集合一般由列表创建,在初始化列表时保证其元素唯一性,即为集合。 创建方法:x set(list…...
![](https://img-blog.csdnimg.cn/direct/a23fd49f8f15475e8f6e1cac1232e9f6.png)
idk17配置
只需要把zip包解压,然后配置环境变量: bin目录路径粘到path里面就好了 然后打开cmd窗口分别输入 java javac java -version 验证...
![](https://img-blog.csdnimg.cn/direct/e54a04b65ca845bf99d6146d225a8f22.png)
Java实现日志全链路追踪.精确到一次请求的全部流程
广大程序员在排除线上问题时,会经常遇见各种BUG.处理这些BUG的时候日志就格外的重要.只有完善的日志才能快速有效的定位问题.为了提高BUG处理效率.我决定在日志上面优化.实现每次请求有统一的id.通过id能获取当前接口的全链路流程走向. 实现效果如下: 一次查询即可找到所有关…...
![](https://img-blog.csdnimg.cn/5111b7615a994761bf8beebed63fab9b.png)
你敢相信吗,AI绘画正在逐渐取代你的工作!
前言 在当今信息技术高速发展的时代,AI绘画技术的崛起已引起了广泛关注和讨论。许多人开始担心AI技术是否会逐渐取代传统绘画师的工作。人类无疑是感性的动物,创作出来的艺术作品常常带有浓郁的个人风格和情感。但AI绘画在某些方面的突破,使…...
博途PLC轴工艺对象随动误差监视功能
S7-1200PLC和V90总线伺服通过工艺对象实现定位控制时在组态工艺对象里有这样的随动误差监视功能介绍,关于这个功能,今天我们解读下,工艺对象组态编程可以参考下面文章链接: S7-1200PLC和V90总线伺服通过工艺对象实现定位控制(标准报文3应用)_v90工艺对象3号报文-CSDN博客文…...
![](https://img-blog.csdnimg.cn/direct/da9d3686160944b5abdc3fa1db2f9db1.png)
《昇思25天学习打卡营第24天 | 昇思MindSporeResNet50图像分类》
24天 本节学习了使用ResNet50网络对CIFAR-10数据集进行分类。 步骤: 1.数据集准备与加载 2.构建网络 残差网络结构(Residual Network)是ResNet网络的主要亮点,ResNet使用残差网络结构后可有效地减轻退化问题,实现更深的网络结构设计&#x…...
![](https://www.ngui.cc/images/no-images.jpg)
糟糕的管理者都有这几个特征
在我们的职业生涯中,我们都期望能遇到一位英明睿智、引领团队走向辉煌的管理者。然而,现实往往并非总是如此美好,总会有一些管理能力差的人混迹其中,给团队带来诸多困扰。今天,我们就来看看糟糕的管理者身上都有哪些特…...
![](https://img-blog.csdnimg.cn/direct/3a30f530c9504c5ba5807981d8283ff0.png)
Python (Ansbile)脚本高效批量管理服务器和安全
1、简介 在现代 IT 基础设施中,管理大量服务器是一项复杂而繁琐的任务。特别是在检查服务器的存活状态以及 SSH 登录等任务上,手动操作非常耗时且容易出错。本文将介绍如何使用 Python 脚本实现对多台服务器的批量检查和管理,包括检查服务器…...
![](https://img-blog.csdnimg.cn/direct/2809c5d643cd4f678ed168506ed887a4.png)
《数字图像处理与机器视觉》案例三 (基于数字图像处理的物料堆积角快速测量)
一、前言 物料堆积角是反映物料特性的重要参数,传统的测量方法将物料自然堆积,测量物料形成的圆锥表面与水平面的夹角即可,该方法检测效率低。随着数字成像设备的推广和应用,应用数字图像处理可以更准确更迅速地进行堆积角测量。 …...
![](https://www.ngui.cc/images/no-images.jpg)
Postman接口测试工具的原理及应用详解(四)
本系列文章简介: 在当今软件开发的世界中,接口测试作为保证软件质量的重要一环,其重要性不言而喻。随着前后端分离开发模式的普及,接口测试已成为连接前后端开发的桥梁,确保前后端之间的数据交互准确无误。在这样的背景…...
![](https://img-blog.csdnimg.cn/img_convert/eac3d43e42dc15149482be81b562b5d8.png)
扛鼎中国AI搜索,天工凭什么?
人类的创作不会没有瓶颈,但AI的热度可不会消停。 大模型之战依旧精彩,OpenAI选择在Google前一天举行发布会,两家AI企业之间的拉扯赚足了热度。 反观国内,百模大战激发了大家对于科技变革的热切期盼,而如今行业已逐渐…...
![](https://img-blog.csdnimg.cn/direct/bb1b2036e4b745d99a9e77eeca462a3a.gif#pic_center)
【Ant Design Vue的更新日志】
🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…...
![](https://img-blog.csdnimg.cn/direct/69943a3215d24550b7bac6b62aae3e79.png)
Elasticsearch环境搭建|ES单机|ES单节点模式启动|ES集群搭建|ES集群环境搭建
文章目录 版本选择单机ES安装与配置创建非root用户导入安装包安装包解压配置JDK环境变量配置single-node配置JVM参数后台启动|启动日志查看启动成功,访问终端访问浏览器访问 Kibana安装修改配置后台启动|启动日志查看浏览器访问 ES三节点集群搭建停止es服务域名配置…...
![](https://www.ngui.cc/images/no-images.jpg)
System.currentTimeMillis() JAVA 转C#
JAVA中的System.currentTimeMillis() ,指获取当前时间与1970年1月1日00:00:00 GMT之间所差的毫秒数的方法。 这个方法返回的是一个long类型的值,表示从某个固定时间点(通常是UNIX纪元,即1970年1月1日00:00:00 GMT)到…...
![](https://img-blog.csdnimg.cn/direct/7d6fc083db8d4afb9d9c1a4887add870.png#pic_center)
人机交互新维度|硕博电子发布双编码器操作面板、无线操作面板等新品
6月15日,硕博电子召开了一场新品发布会,向业界展示了多项前沿技术成果,其中备受瞩目的当属SPM-KEYP-D08双编码器操作面板、SPM-KEYP-D16W无线操作面板、SPR-HT-XK12A无线手持发射端以及SPQ-WT-B01洒水车专用控制面板。这些创新产品的亮相&…...
![](https://www.ngui.cc/images/no-images.jpg)
简单shell
目录 预备知识 fork 进程等待 wait waitpid 环境变量 概念 分类 常见的环境变量及其用途 环境变量的查看与设置 exec系列 函数解释 命名理解 简单shell 预备知识 fork fork 是 Linux 和许多其他类 Unix 系统中的一个重要系统调用,它用于创建一个新的…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring Boot + FreeMarker 实现动态Word文档导出
Spring Boot FreeMarker 实现动态Word文档导出 在现代企业应用中,文档自动化生成是一项提升工作效率的重要功能。Spring Boot与FreeMarker的组合,为开发者提供了一个强大的平台,可以轻松实现动态Word文档的导出。本文将指导你如何使用Sprin…...
![](https://img-blog.csdnimg.cn/direct/74ccda6decfd4ba4a43f3f8aa6d2e08d.png)
3D生物打印的未来:多材料技术的突破
多材料生物打印技术是近年来发展迅速的一项技术,为组织工程和再生医学带来了新的机遇,可以帮助我们更好地理解人体组织的结构和功能,并开发新的治疗方法。 1. 组织构建 复杂性模拟:多材料生物打印技术能够构建具有层次结构和异质…...
![](https://img-blog.csdnimg.cn/img_convert/e99504229c61e3de28c42fc6227548d5.png)
充电宝口碑哪个好?好用充电宝品牌有哪些?好用充电宝推荐
充电宝作为我们日常生活和出行的重要伙伴,其品质和性能直接影响着我们的使用体验。今天,就来和大家探讨一下充电宝口碑哪个好,为大家盘点那些备受赞誉的好用充电宝品牌,并向您推荐几款值得入手的充电宝,外出时不再担心…...
![](https://www.ngui.cc/images/no-images.jpg)
Pytorch-----(6)
一 、问题 如何计算基于不同变量的操作如矩阵乘法。 二、具体实现 0.4版本以前,张量是包裹在变量之中的,后者有三个属性grad、volatile和 requires_grad属性。(grad 就是梯度属性,requires_grad属性就是 是否需要存储梯度&#x…...
![](https://www.ngui.cc/images/no-images.jpg)
leetcode hot100 第三题:最长连续序列(Java)
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums [100,4,200,1,3,2] 输出:4 解…...
![](https://img-blog.csdnimg.cn/img_convert/49294c16a3d7aba99109e3e0020f9a0a.png)
利用Jaspar进行转录因子结合位点预测
前期我们介绍了如何进行ChIP-qPCR验证,里面提到了一个比较重要的因素——扩增范围的选择及引物的设计。相比双荧光素酶、酵母单杂-点对点验证等允许完整启动子验证的实验,ChIP-qPCR要求单次验证的范围尽量控制在150-200bp内。但一个基因的启动子一般有2-…...
![](https://www.ngui.cc/images/no-images.jpg)
Ubuntu添加系统字体
(2024.6.30) 系统字体保存路径在/usr/share/fonts下,如果此目录下缺少字体,则使用其他可视化api(如Python的pygame库)的默认配置时可能会出现乱码问题。 往Ubuntu中添加字体的方法 方法一:手…...
![](https://www.ngui.cc/images/no-images.jpg)
深度学习相关概念及术语总结2
目录 76.AUC77.DBSCAN聚类78.贝叶斯个性化排序79.BPRBandit算法 76.AUC AUC(Area Under the Curve)是一种常用的评价指标,用于衡量分类模型的性能。AUC值代表了模型在不同阈值下的真阳性率(True Positive Rate)和假阳…...
![](https://img-blog.csdnimg.cn/img_convert/960b1d91bcc7993a7e222b559e2a6013.png)
基于改进滑模、经典滑模、最优滑模控制的永磁同步电机调速系统MATLAB仿真
微❤关注“电气仔推送”获得资料(专享优惠) 模型简介 针对永磁同步电机调速系统的响应性能和抗干扰能力问题,本文做了四个仿真,分别为:永磁同步电机的PID控制调速系统、基于传统滑模控制的永磁同步电机的调速系统、最…...
![](https://img-blog.csdnimg.cn/direct/b6a4c562384748959d4921ea00bd66e7.jpeg#pic_center)
windows环境下创建python虚拟环境
windows环境下创建python虚拟环境 使用virtualenv库创建虚拟环境,可使不同的项目处于不同的环境中 安装方法: pip install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple pip install virtualenvwrapper-win -i https://pypi.tuna.tsinghua…...
![](https://img-blog.csdnimg.cn/direct/ac27d70aaf2149a2b3f0103219b23c92.gif)
如何用简单的html,css,js写出一个带有背景层的删除弹出框
虽然每次项目都是主要写后端,但是有时候前端的样式太丑了,也有点看不下去。弹出框是项目中用的比较多的,比如删除,修改或者添加什么的,都需要一个弹出框。 所以这里简单记录一下,应该如何实现。实现效果如…...
![](https://www.ngui.cc/images/no-images.jpg)
第8天:模块和包
学习目标 理解Python模块和包的概念学习如何创建和导入模块掌握标准库模块的使用学习如何使用包组织代码 学习内容 1. 模块的概念 模块是一个包含Python代码的文件,模块可以包含函数、类和变量,也可以包含可执行的代码。模块使你能够组织和重用代码。…...
![](https://img-blog.csdnimg.cn/direct/db196760f6634e4b974154db34e81db3.png#pic_center)
vue组件深入介绍之插槽
了解插槽之前请先了解vue组件基础及注册 Vue2官网介绍 Vue3官网介绍 1、vue2插槽介绍 在2.6.0中,具名插槽和作用域插槽引入了一个新的统一语法(v-slot指令)。它将取代slot和slot-scope; Vue 实现了一套内容分发的 API…...
![](https://img-blog.csdnimg.cn/direct/9f4b7da9748f4bc38499778e5c9622f3.png)
Linux:文件系统与日志分析
一、block与inode 1.1、概述 文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”(sector),每个扇区存储512字节。 一般连续八个扇区组成一个"块”(block),一个块是4K大小,是文件存取的最小单位。 文件数据包括实际数据…...
![](https://www.ngui.cc/images/no-images.jpg)
PHP和phpSpider:如何应对网站变动导致的数据爬取失败?
php和phpspider:如何应对网站变动导致的数据爬取失败? 导语: 网络爬虫是一种自动化程序,用于从网站上获取数据并进行处理。PHP是一种广泛使用的编程语言,而phpSpider是一个基于PHP的开源网络爬虫框架。然而࿰…...
![](https://img-blog.csdnimg.cn/direct/e2c543954a454745b45a0d3b4485c5cc.jpeg)
【RT摩拳擦掌】RT云端测试之百度天工物接入构建(设备型)
【RT摩拳擦掌】RT云端测试之百度天工物接入构建(设备型) 一, 文档介绍二, 物接入IOT Hub物影子构建2.1 创建设备型项目2.2 创建物模型2.3 创建物影子 三, MQTT fx客户端连接云端3.1 MQTT fx配置3.2 MQTT fx订阅3.3 MQT…...
![](https://www.ngui.cc/images/no-images.jpg)
将生活与出行融合揽境凭什么可以做到?
中国消费者对SUV的钟爱与热衷,堪称市场中的一股强大潮流。他们对其的认可,不仅仅停留在功能性的满足,更是对品质、品味与生活态度的追求。SUV所代表的宽敞空间、卓越通过性和引人注目的外观,恰恰迎合了中国消费者对于舒适、实用与时尚并重的需求。从整个SUV市场来看,30万级…...
![](https://www.ngui.cc/images/no-images.jpg)
24.98万起!理想汽车诚意之作,理想L6,年轻家庭的不二之选
2019年12月以来的累计交付量72万辆,理想汽车终于放出了大招,推出了家庭五座豪华SUV——理想L6。这款车有两个版本,Pro和Max,售价在24.98万到27.98万元之间。这辆车已经在4月份开始交付,是理想汽车进入30万以下市场的诚意之作。理想L6的外观延续了L系列的标志性星环设计,车…...
![](https://www.ngui.cc/images/no-images.jpg)
SQLServer2022新特性Window子句
SQLServer2022新特性Window子句 参考官方文档 https://learn.microsoft.com/zh-cn/sql/t-sql/queries/select-window-transact-sql?viewsql-server-ver16 1、本文内容 语法参数一般备注示例 1.1、新特性适用于: SQL Server 2022 (16.x)Azure SQL 数据库Azure …...
![](https://www.ngui.cc/images/no-images.jpg)
新人开发新系统,旧人维护旧系统
通常来说旧系统存在一些难以解决的问题,软件架构及逻辑实现可能会有一定的缺陷和复杂度,甚至有些烂系统可以称为”焦油坑“,意思是出现问题难以分析解决,谁来谁陷进去。因此,如果同时存在新系统(可能正在开…...
![](https://img-blog.csdnimg.cn/direct/02d402a217674ed1ae9aa92bb3b2d7ab.png)
LLAMA3==shenzhi-wang/Llama3-8B-Chinese-Chat。windows安装不使用ollama
创建环境: conda create -n llama3_env python3.10 conda activate llama3_env conda install pytorch torchvision torchaudio cudatoolkit11.7 -c pytorch 安装Hugging Face的Transformers库: pip install transformers sentencepiece 下载模型 ht…...
![](https://img-blog.csdnimg.cn/direct/127ed38c60df40f0ba414778fd90e0cd.png)
Paddle使用问题No module named ‘paddle.fluid’
这是Paddle版本的问题,从飞桨框架 2.5 版本开始,已经废弃了 paddle.fluid 。 解决方案:修改paddle版本 pip install paddlepaddle2.4.0...