- 起因:最近要做一个微信扫码登录的功能,但是不想使用微信的登录接口
- 过程:考虑了很多解决方案,第一个想到的是js ajax 0.5秒做一次心跳,= =,然而这种解决方案太过于耗费服务器资源,打开network,我自己都看不下去了,最后使用的解决方法是PHP和ajax结合做。
需要解决的问题:
- session锁问题:当PHP调用usleep的时候,没办法打开其他需要读取session的页面,造成链接无响应,这时候,有一个解决方案,就是调用session_close_wirte(),然而这种解决方案太过于粗暴。于是便将session转移到数据库,查询许多资料,其实也发现,很多公司为了加快速度,有使用memcached管理session的解决方案。
- 唯一码生成问题:这个借助uniqid解决
- 保持连接查询到扫码则返回值:解决这个问题需要set_time_limit,ajax timeout,exit结合使用。