scanner: Global session id

This commit is contained in:
Fam Zheng 2025-03-02 15:55:20 +00:00
parent 0593c1f8a5
commit 6d4f831003
3 changed files with 49 additions and 30 deletions

View File

@ -1,4 +1,8 @@
// app.js
import {
make_new_session_id,
} from './utils.js';
App({
onLaunch() {
// 展示本地存储能力
@ -27,7 +31,8 @@ App({
},
globalData: {
userInfo: null,
server_url: 'https://themblem.com'
server_url: 'https://themblem.com',
session_id: make_new_session_id(),
},
get_real_ip() {

View File

@ -15,6 +15,7 @@ import {
import {
get_camera_rule,
get_system_info,
send_event,
} from '../../utils.js'
import { debug, info, error } from '../../log.js'
@ -49,6 +50,7 @@ Page({
qrarc_class: "sm",
qrmarkers_class: "hidden",
frame_upload_in_flight: 0,
frame_upload_failed: 0,
frame_upload_time_cost: 0,
frame_upload_interval_ms: 2000,
},
@ -89,8 +91,6 @@ Page({
this.setData({
ai_chat_mode: options.ai_chat_mode,
});
var new_session_id = Date.now();
getApp().globalData.session_id = new_session_id;
if (options.env == 'dev') {
console.log("Using dev env settings.");
getApp().globalData.server_url = 'https://dev.themblem.com';
@ -392,36 +392,30 @@ Page({
frame_upload_in_flight: this.data.frame_upload_in_flight + 1,
});
var seq_num = this.data.frame_upload_seq_num.toString().padStart(3, '0');
var fd = {
var event_data = {
session_id: getApp().globalData.session_id,
phone_model: getApp().globalData.phone_model,
seq_num: seq_num,
image_data_url: data_url,
}
wx.request({
url: "https://research.themblem.com/event/camera-frame",
method: "POST",
data: JSON.stringify(fd),
header: {
"Content-Type": "application/json",
},
success: (res) => {
this.setData({
frame_uploaded: this.data.frame_uploaded + 1,
frame_upload_in_flight: this.data.frame_upload_in_flight - 1,
frame_upload_time_cost: Date.now() - begin,
frame_upload_interval_ms: this.data.frame_upload_interval_ms * 2,
});
},
fail: (e) => {
this.log("frame upload failed", e);
this.setData({
frame_upload_in_flight: this.data.frame_upload_in_flight - 1,
frame_upload_time_cost: Date.now() - begin,
frame_upload_interval_ms: this.data.frame_upload_interval_ms * 2,
});
},
});
var success_cb = (res) => {
this.setData({
frame_uploaded: this.data.frame_uploaded + 1,
frame_upload_in_flight: this.data.frame_upload_in_flight - 1,
frame_upload_time_cost: Date.now() - begin,
frame_upload_interval_ms: this.data.frame_upload_interval_ms * 2,
});
}
var fail_cb = (e) => {
this.log("frame upload failed", e);
this.setData({
frame_upload_failed: this.data.frame_upload_failed + 1,
frame_upload_in_flight: this.data.frame_upload_in_flight - 1,
frame_upload_time_cost: Date.now() - begin,
frame_upload_interval_ms: this.data.frame_upload_interval_ms * 2,
});
}
send_event("camera-frame", event_data, success_cb, fail_cb);
},
do_handle_frame(res) {
if (this.busy) return;
@ -441,7 +435,8 @@ Page({
var uca1 = new Uint8ClampedArray(res.data);
var uca = new Uint8ClampedArray(uca1);
const data_url = data_url_from_frame(res.width, res.height, uca);
var r = frame_pre_check(res.width, res.height, uca, this.data.camera_sensitivity);
var r = frame_pre_check(res.width, res.height, uca,
this.data.camera_sensitivity)
const result = r.result;
this.log("frame_pre_check: ", JSON.stringify(result));
this.setData({

View File

@ -91,11 +91,30 @@ function goto_camera(redirect, opts) {
});
}
function make_new_session_id() {
return `${Date.now()}-${Math.random().toString(36).substring(2, 15)}`;
}
function send_event(event_name, data, success_cb, fail_cb) {
wx.request({
url: 'https://research.themblem.com/event/' + event_name,
method: 'POST',
data: JSON.stringify(data),
header: {
'Content-Type': 'application/json',
},
success: success_cb,
fail: fail_cb,
});
}
module.exports = {
get_system_info,
get_phone_model,
get_camera_rule,
goto_camera,
formatTime
formatTime,
make_new_session_id,
send_event,
}