抖音直播间websocket礼物和弹幕消息推送可能出现重复的情况,解决办法

在抖音直播间里,通过websocket收到的礼物消息数据格式如下:

{
  'common': {
    'method': 'WebcastGiftMessage',
    'msgId': '7283420150152942632',
    'roomId': '7283413007005207308',
    'createTime': '1695803662805',
    'isShowMsg': True,
    'describe': '莎***:送给主播 1个入团卡',
    'priorityScore': '31000'
  },
  'giftId': '3242',
  'groupCount': '1',
  'repeatCount': '1',
  'comboCount': '1',
  'user': {
    'id': '323234',
    'nickName': '莎***',
    'gender': 1,
    'AvatarThumb': {
      'urlListList': [
        '头像链接',
        '头像链接',
        '头像链接'
      ],
      'uri': 'webcast/small_DefAvatar.png',
      'avgColor': '#E0C8BC'
    },
    'BadgeImageList': [
      {
        'urlListList': [
          'http://p11-webcast.douyinpic.com/img/webcast/fansclub_level_v6_9.png~tplv-obj.image',
          'http://p6-webcast.douyinpic.com/img/webcast/fansclub_level_v6_9.png~tplv-obj.image',
          'http://p3-webcast.douyinpic.com/img/webcast/fansclub_level_v6_9.png~tplv-obj.image'
        ],
        'uri': 'webcast/fansclub_level_v6_9.png',
        'imageType': 7,
        'content': {
          'name': '挚爱',
          'fontColor': '#FFFFFF',
          'level': '9',
          'alternativeText': '挚爱粉丝团勋章'
        }
      }
    ],
    'FollowInfo': {
      'followingCount': '25',
      'followerCount': '620',
      'followerCountStr': '620',
      'followingCountStr': '25'
    },
    'idStr': '111111'
  },
  'groupId': '1695803662',
  'gift': {
    'image': {
      'urlListList': [
        'http://p11-webcast.douyinpic.com/img/webcast/698373dfdac86a90b54facdc38698cbc~tplv-obj.png',
        'http://p3-webcast.douyinpic.com/img/webcast/698373dfdac86a90b54facdc38698cbc~tplv-obj.png',
        'http://p6-webcast.douyinpic.com/img/webcast/698373dfdac86a90b54facdc38698cbc~tplv-obj.png'
      ],
      'uri': 'webcast/698373dfdac86a90b54facdc38698cbc',
      'avgColor': '#523749'
    },
    'describe': '送出入团卡',
    'id': '3242',
    'combo': True,
    'type': 1,
    'diamondCount': 1,
    'name': '入团卡',
    'icon': {
      'urlListList': [
        'http://p3-webcast.douyinpic.com/img/webcast/698373dfdac86a90b54facdc38698cbc~tplv-obj.png',
        'http://p6-webcast.douyinpic.com/img/webcast/698373dfdac86a90b54facdc38698cbc~tplv-obj.png',
        'http://p11-webcast.douyinpic.com/img/webcast/698373dfdac86a90b54facdc38698cbc~tplv-obj.png'
      ],
      'uri': 'webcast/698373dfdac86a90b54facdc38698cbc',
      'avgColor': '#BCD9E0'
    }
  },
  'publicAreaCommon': {},
  'trayDisplayText': {
    'key': 'webcast_aweme_tray_message_to_anchor',
    'defaultPatter': '送{0}',
    'defaultFormat': {
      'color': '#B3FFFFFF',
      'weight': 400,
      'useRemoteClor': True
    },
    'piecesList': [
      {
        'type': True,
        'format': {
          'color': '#B3FFFFFF',
          'weight': 400,
          'useRemoteClor': True
        }
      }
    ]
  },
  'bannedDisplayEffects': '3',
  'clientGiftSource': 1,
  'traceId': '666666_1_98039178148_1135172434265197_20230927'
}

根据字段名称可以看到送礼物的人和送的礼物是什么,并且这个礼物的traceId是唯一的,所以可以通过这个traceId进行去重。

判断这个礼物是否在监控列表中并且是否已经在全局id中:

抖音直播间websocket礼物和弹幕消息推送可能出现重复的情况,解决办法_第1张图片

消息和礼物等数据也有可能会出现重复的情况,都可以通过traceId进行去重:

抖音直播间websocket礼物和弹幕消息推送可能出现重复的情况,解决办法_第2张图片

在onMessage中,可以通过判断method判断是什么消息类型:

抖音直播间websocket礼物和弹幕消息推送可能出现重复的情况,解决办法_第3张图片

你可能感兴趣的:(Python人生,websocket,网络协议,网络)