1.利用nodejs socketio创建了一个空间提供我开发的遇见APP页面访问统计
mysql建表,服务端js书写逻辑,页面书写逻辑,一切准备就绪后,怀着激动地心刷新了页面,
boom,
数据更新失败~~·
上代码:
public function saveVisit(){
$data = input('post.');
try{
if($info = Db::name('user_visit')->where(['soket_id'=>$data['soket_id'],'end_time'=>0])->find()){
$end_time = time();
Db::name('user_visit')->where(['id'=>$info['id']])->update([
'end_time'=>$end_time,
'take_up_time'=>$info['start_time']-$end_time,
]);
}else{
$data['start_time'] = time();
Db::name('user_visit')->insert($data);
}
return jsonsuccess('success'.date('Y-m-d H:i:s'));
}catch (\Exception $e){
return jsonerror($e->getMessage());
}
}
逻辑是利用socketio那边传过来的数据先进行插入操作,然后进行更新,计算出访问页面的时间,问题出现了,刷新页面导致socketio做数据请求时,时间过短,插入和更新同步操作,导致插入还没进行更新就已经开始了。
–出了BUG,本地后台很突然的接收不到socketio推送过来的数据
–线上https配置,配置了证书之后一直报跨域错误,PHP设置了header头,nodejs也设置了,均无效

发表回复