项目中遇到的难点,如何解决的?

用户登录部分

RSA:使用非对称加密的方式进行传输,前端用公钥进行加密,服务端使用密钥进行解密。

新框架如何嵌入到老框架中?

用iframe嵌入,使用postMassage()通信。

Web Component 组件化开发,如何拆分组件?

项目改造问题:

为什么要改:
    旧项目是单个jsp项目,前后端不分离,巨石应用。老网银是一个壳(包含登录、菜单等)中使用iframe加载的各个功能
改造方案:
    前端用微前端qiankun+iframe;
    改造过程中前端 epw-eweb 和 eweb(前)并行;
    服务端:epw 和 eweb(后) 并行
为啥选用微前端:
    业务结构分为十三个模块,各模块功能相对独立。分离比较好维护,可以单独开发、打包和部署。

为啥还用了iframe?
    各子应用对应模块不是一次能改完的,而是渐进式改造的。存在新老功能并行情况。而老网银之前各业务功能是通过iframe加载的,各页面依赖程度不强。所以不改造的功能暂时用这加载。

咋实现的:iframe和router 进行切换?

如果菜单(老网银返回)name和router中定义路由的name匹配,则进入新页面,否则进入iframe老页面

中间遇到的问题:

1、iframe中老页面提示部分window方法找不到解决:

用新网银实现,挂载到window上供老页面调用(相当于实现一遍老网银壳上定义的方法),如一个老页面要跳掉另一个老页面,老页面调用了parent.window.gotoOtherPage方法,我们需要在新网银上实现该方法供其调用)

2、iframe中老页面跨域和授权问题解决:通过nginx代理eweb相关请求和链接解决

3、会话保持问题(该问题仍未解决)

问题原因:改造后产生两个服务,epw和eweb(可以引出我们登录改造),在客户长时间做新交易时,老交易(eweb服务器)15分钟未接收到请求会判定会话失效;反之也是,所以需要会话保持。
    妥协办法:设置定时器每隔一段时间分别调用一次(带来会话永久有效问题;通过 监听关闭浏览器、关闭标签页、拔出U盾事件,在事件中调用退出登录方法等妥协处理)

5.高并发的时候,下载阻塞

解决办法:nginx下载限速

按请求速率限速,ngx_http_limit_req_module,限制单个IP发送请求的速率,超出指定速率后,Nginx将直接拒绝更多的请求。

http {
    limit_req_zone $binary_remote_addr zone=mylimit:10m rate=2r/s;
    ...
    server {
        ...
        location /search/ {
            limit_req zone=mylimit burst=4 nodelay;
        }
    }
}

有发布过 npm 包吗?

签名验签控件(内网)

里边有三个方法主要的方法,getCertList()获取证书列表  SN()设置前面证书序列号  SignData()签名

name、version、discription、main、files

license: 'MIL',   开源协议

先本地build之后,去发布

npm

npm publish

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值