Java http长轮巡模拟扫码登录

demo 地址 https://gitee.com/youngboyvip/longpoll

实现原理

使用Servlet3异步接口实现非阻塞长连接接口, 异步上下文对象使用 ScheduledExecutorService 线程池定时调度
事件总线使用了 guava 中的 EventBus 实现

curl 执行顺序

//发起长链接请求
curl -X GET \
    'http://localhost:8080/api/longPolling?uuid=666&type=scan' \
    -H 'Cache-Control: no-cache' \
    -H 'Postman-Token: 531c77a6-d6b1-4cb5-b666-de1908123660'
   
//用户扫码,长连接响应用户扫码状态信息
curl -X GET \                                                                                        
  http://localhost:8080/api/scan/666 \
  -H 'Cache-Control: no-cache' \
  -H 'Postman-Token: d06921c5-b063-49f3-88cc-bb32de148000'

//扫码时候继续发起长连接等待用户确认授权
curl -X GET \
  'http://localhost:8080/api/longPolling?uuid=666&type=confirm' \
  -H 'Cache-Control: no-cache' \
  -H 'Postman-Token: 5aab47be-8522-4f97-96a5-d5dba035b4e7'
  
//用户确认授权,长连接请求返回token
curl -X GET \
  'http://localhost:8080/api/confirm/666?result=success' \
  -H 'Cache-Control: no-cache' \
  -H 'Postman-Token: 6855c644-23d5-4bbb-87f3-e6b344a70665'

OAuth2 + OpenId 仿微信公众平台扫码登录

开发中...

参与讨论 访问 www.youngboy.vip

q群:611515822

你可能感兴趣的:(Java http长轮巡模拟扫码登录)