随便测试
一个行
CLICK ME
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didSendBodyData:(int64_t)bytesSent totalBytesSent:(int64_t)totalBytesSent totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend {
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
UILabel *label = (UILabel *)[cell viewWithTag:104];
dispatch_async(dispatch_get_main_queue(), ^{
if((float)totalBytesSent / totalBytesExpectedToSend == 1.0f) {
label.text = @"上传成功";
}
else {
label.text = [NSString stringWithFormat:@"上传中:%.0f%%",100*(float)totalBytesSent / totalBytesExpectedToSend];
}
});
}
'use strict';
const Host = '47.112.172.203';
const User = 'root';
const Password = 'Xw8323fox~';
const Port = 3306;
const DB = 'hxw_testdb';
const Table = 'ConnectionID_List';
const mysql = require('mysql');
const dayjs = require('dayjs');
function wrapPromise(connection, sql) {
return new Promise((resolve, reject) => {
connection.query(sql, function (error, results, fields) {
if (error) {
reject(error);
}
resolve(results);
});
});
}
async function record_connectionID(connectionID) {
console.log("Start record_connectionID function");
console.log("connectionID is", connectionID);
const connection = mysql.createConnection({
host: Host,
user: User,
password: Password,
database: DB,
port: Port
});
// Save the connection ID into datavase, 把 connection ID 存到数据库
const now = new dayjs();
const nowStr = now.format("YYYY-MM-DD HH:mm:ss");
let addsql = `insert INTO ${Table} (\`ConnectionID\`, \`Date\`, \`Extra\`) VALUES ('${connectionID}', '${nowStr}', '囍囍囍')`;
await wrapPromise(connection, addsql);
connection.end();
}
exports.main_handler = async (event, context, callback) => {
console.log("event is", event);
console.log("event log end");
if (!event.requestContext) {
return { errNo: 101, errMsg: "not found request context" };
}
if (!event.websocket) {
return { errNo: 102, errMsg: "not found web socket" };
}
let connectionID = event["websocket"]["secConnectionID"];
let retmsg = {};
retmsg["errNo"] = 0;
retmsg["errMsg"] = "ok";
retmsg["websocket"] = {
action: "connecting",
secConnectionID: connectionID
};
// Recording the new connectionID into database, 在数据库中记录新的connectionID
console.log("Start DB Request", new dayjs().format("YYYY-MM-DD HH:mm:ss"));
await record_connectionID(connectionID);
console.log("Finish DB Request", new dayjs().format("YYYY-MM-DD HH:mm:ss"));
console.log(
"connecting: connection id",
event["websocket"]["secConnectionID"]
);
return retmsg;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
2015-03-04 Github的基本配置与使用