protobuf 之前有说过,就不再重复了。可回顾《万方protobuf协议请求案例》。

原文链接:https://blog.csdn.net/weixin_...

查看 common-utils-message.979d96f7.js 中的方法

var d = (new Map).
 set("WebcastDiggMessage", "DiggMessage").
 set("WebcastFansclubMessage", "FansclubMessage").
 set("WebcastScreenChatMessage", "ScreenChatMessage").
 set("WebcastControlMessage", "ControlMessage").
 set("WebcastSocialMessage", "SocialMessage").
 set("WebcastRoomMessage", "RoomMessage").
 set("WebcastFansclubStatisticsMessage", "FansclubStatisticsMessage"
 set("WebcastRoomVerifyMessage", "RoomVerifyMessage").
 set("WebcastNoticeMessage", "NoticeMessage").
 set("WebcastNobleUpgradeMessage", "NobleUpgradeMessage").
 set("WebcastImDeleteMessage", "ImDeleteMessage").
 set("WebcastSunDailyRegionRankMessage","SunDailyRankMessage").
 set("WebcastSunDailyRankMessage", "SunDailyRankMessage").
 set("WebcastRoomUserSeqMessage", "RoomUserSeqMessage").
 set("WebcastVerificationCodeMessage", "VerificationCodeMessage").
 set("WebcastLinkMicMethod", "LinkMicMethod").
 set("WebcastLinkMicBattleMethod", "LinkMicBattle")
 .set("WebcastLinkMicBattleFinishMethod", "LinkMicBattleFinish").
 set("WebcastRoomNotifyMessage", "NotifyMessage").
 set("WebcastLinkMicSignalingMethod", "LinkMicSignalingMethod").
 set("WebcastLotteryEventMessage", "LotteryEventMessage").
 set("WebcastUploadCoverMessage", "UploadCoverMessage").
 set("WebcastCategoryChangeMessage", "CategoryChangeMessage").
 set("WebcastRoomChallengeMessage", "RoomChallengeMessage").
 set("WebcastLikeMessage", "LikeMessage").
 set("WebcastLinkMicArmiesMethod", "LinkMicArmies").
 set("WebcastGameInviteMessage", "GameInviteMessage").
 set("WebcastQuizStartMessage", "QuizStartMessage").
 set("WebcastQuizResultMessage", "QuizResultMessage").
 set("WebcastQuizChangeMessage", "QuizChangeMessage").
 set("WebcastQuizBeginMessage", "QuizBeginMessage").
 set("WebcastOChannelAnchorMessage", "OChannelAnchorMessage").
 set("WebcastOChannelModifyMessage", "OChannelModifyMessage").
 set("WebcastLinkMicOChannelKickOutMsg", "LinkMicOChannelKickOutMsg").
 set("WebcastLinkMicOChannelNotifyMsg", "LinkMicOChannelNotifyMsg").
 set("WebcastRoomIntroMessage", "RoomIntroMessage").
 set("WebcastGroupShowUserUpdateMessage", "GroupShowUserUpdateMessage");

根据Js中的代码,定义proto文件

定义.proto文件很简单:为要序列化的每个数据结构添加条message,然后为message中的每个字段指image.png

则proto文件内容如下

message ChatMessage{
  Common common = 1;
  User user = 2;
  string content = 3;
  bool visibleToSender = 4;
  Image backgroundImage = 5;
  string fullScreenTextColor = 6;
  Image backgroundImageV2 = 7;
  PublicAreaCommon publicAreaCommon = 9;
  Image giftImage = 10;
}

再比如这个 GiftMessage
image.png

则proto文件内容如下

message GiftMessage{
    repeated Common common=1;
    uint64 giftId=2;
    uint64 fanTicketCount=3;
    uint64 groupCount=4;
    uint64 repeatCount=5;
    uint64 comboCount=6;
    repeated User user=7;
    repeated User toUser=8;
    int32 repeatEnd = 9;
    TextEffect textEffect = 10;
    int64 groupId = 11;
    int64 incomeTaskgifts = 12;
    int64 roomFanTicketCount = 13;
}

python调用、源码下载 请查看原文:
https://blog.csdn.net/weixin_...


落雨
27 声望9 粉丝

引用和评论

0 条评论