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也设置了,均无效
发表回复