immusen

immusen

这家伙有点懒,还没写个性签名!

  • 财富值475
  • 威望值20
  • 总积分805

个人信息

  • 2019-05-15 已签到
    连续签到2天,获得了10个金钱
  • 2019-05-14 已签到
    连续签到1天,获得了5个金钱
  • 2019-05-10 已签到
    连续签到2天,获得了10个金钱
  • 如果用到统一下单接口,你就可以在这个环节生成针对不同业务域名的订单,请求体携带的notify_url字段决定支付后通知哪个业务的服务端结算。
    哪台服务器生成的订单,跟域名关系不大...主要跟哪台服务器/域名接收回调有关。
    即使有某些约束了url的host(域名)的场景,你也可以变通让web服务器(Nginx..)通过你约定的方式(request_uri、args等)基于反向代理机制给你重新投递回调结果到你期望的其他域/服务器...
    比如:

    location /proxy/ {
        if ($request_uri ~ ^/proxy/(.*)/ ) {
            set $domain $1;
            proxy_pass http://$domain/wechat/notify;
        }
    }
    

    Request: http://www.yiichina.com/proxy/order.yiichaina.com/ ...

    • 没测试,理论可行...😄
  • 2019-05-09 已签到
    连续签到1天,获得了5个金钱
  • 2019-05-07 已签到
    连续签到1天,获得了5个金钱
  • 2019-05-05 已签到
    连续签到1天,获得了5个金钱
  • 2019-04-30 已签到
    连续签到4天,获得了20个金钱
  • swoole的websocket握手有默认机制,但你也是能有机会附加操作的(onHandShake回调中,你一样能像HTTP那样加自定义Header或者path_info的方式携带额外数据),这是你可以验证用户身份的第一次时机;
    第二次时机,连接成功后,客户端用你自己约定的方式发token给服务器(rpc、json....),完成验证(Who am i)。
    验证后绑定:$server->bind($fd,$uid)绑到connection_info上,之后随时能$Server->getClientInfo()取回uid。

  • Yii::$app->user->identity 里的 user 默认是 yii\web\user
    在swoole的worker里面运行的话:一般的做法是重写 yii\web\user的login 方法,改成不依赖cookie(至于依赖什么,得看你在websocket登录的解决方案,有各种变通、组合方案,说来话长),然后确保在你 Yii::$app->user->identity 之前调用过login;
    中级做法是uid绑fd,然后根据业务需求拿uid操作缓存、数据库;
    高级的做法是用swoole会话期对象在会话期保持机制...
    还挺好玩儿的..改天我做一个Demo..

主管 等级规则
805/1000
资料完整度
20/100
用户活跃度
10/100

Ta的关注

1

Ta的粉丝

3

Ta的访客

6