| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 | /** * 连通上报js */var str_appid = 1252463788,    str_platform = 'weixin',    str_appversion = '1.2.477',    str_sdkversion = '',    str_common_version = '',    str_nickname = '',    str_device = '',    str_device_type = '',    reportData = {      str_roomid: '',      str_room_creator: '',      str_userid: '',      str_play_info: '',      str_push_info: '',      int64_ts_enter_room: -99999,      int64_tc_join_group: -99999,      int64_tc_get_pushers: -99999,      int64_tc_play_stream: -99999,      int64_tc_get_pushurl: -99999,      int64_tc_push_stream: -99999,      int64_tc_add_pusher: -99999,      int64_tc_enter_room: -99999    },    streamData = {      int64_ts_add_pusher: 0,      int64_ts_play_stream: 0    }// 获取用户信息// wx.getUserInfo({//   withCredentials: false,//   success: function (ret) {//     str_nickname = ret.userInfo.nickName;//   }// });// 获取设备信息var systemInfo = wx.getSystemInfoSync();str_sdkversion = systemInfo.version;str_common_version = systemInfo.SDKVersion;str_device = systemInfo.model;str_device_type = systemInfo.system;/** * 设置参数 */function setReportData(options) {  // 第一次进来重置数据  if (options.int64_ts_enter_room) {    console.log('第一次进来重置数据');    clearData();  }  for(var item in reportData) {    if(options[item]) {      reportData[item] = options[item];    }  }  for (var item in streamData) {    if (options[item]) {      streamData[item] = options[item];    }  }  // console.warn('上报数据: ', reportData, streamData);  // 连通率上报前做负值判断  for (var item in reportData) {    if (!isNaN(reportData[item]) && item != 'int64_tc_enter_room' && reportData[item] < 0)      return;  }   if (streamData.int64_ts_add_pusher && streamData.int64_ts_play_stream) {    reportData.int64_tc_enter_room = Math.max(streamData.int64_ts_add_pusher, streamData.int64_ts_play_stream) - reportData.int64_ts_enter_room;    // 上报:只对进房进行上报    // console.log('走完所有流程上报');    reportData.str_room_creator && reportData.str_userid && reportData.str_room_creator != reportData.str_userid && report();  }}/** * 上报cgi */function report() {  // 有房间id与用户id才上报  if (!reportData.str_roomid || !reportData.str_userid) {    clearData();    return;  }  // 创建房间不加入上报  if (reportData.str_room_creator == reportData.str_userid) {    clearData();    return;  }   var data = reportData;  data.str_appid = str_appid;  data.str_platform = str_platform;  data.str_appversion = str_appversion;  data.str_sdkversion = str_sdkversion;  data.str_common_version = str_common_version;  data.str_nickname = str_nickname;  data.str_device = str_device;  data.str_device_type = str_device_type;  console.log('真正上报数据: ', data);  wx.request({    url: 'https://roomtest.qcloud.com/weapp/utils/report',    data: {      reportID: 1,      data: data    },    method: 'POST',    header: {      'content-type': 'application/json' // 默认值    },    success: function (ret) {       if(ret.data.code) {        console.log('上报失败:' + ret.data.code + ret.data.message);      } else {        console.log('上报成功');      }    },    fail: function () { console.log('report error') },    complete: function () {}  });  clearData();}/** * 重置参数 */function clearData() {  reportData = {    str_roomid: '',    str_room_creator: '',    str_userid: '',    str_play_info: '',    str_push_info: '',    int64_ts_enter_room: -99999,    int64_tc_join_group: -99999,    int64_tc_get_pushers: -99999,    int64_tc_play_stream: -99999,    int64_tc_get_pushurl: -99999,    int64_tc_push_stream: -99999,    int64_tc_add_pusher: -99999,    int64_tc_enter_room: -99999  };  streamData = {    int64_ts_add_pusher: 0,    int64_ts_play_stream: 0  };}/** * 对外暴露函数 * @type {Object} */module.exports = {  setReportData: setReportData,  report: report,  clearData: clearData}
 |