背景
拖了好久都没修这两个问题
打包内置静态资源
分离projector中使用的静态资源地址,改成本地打包解决网络加载js、css的速度问题
支持输入框修改token
edge的PWA正常不会记录query string,让projector支持从url鉴权需要动的东西有点多,所以加个输入框支持手动输入重连即可
坑的是kotlin输出$需要用${‘$’}
client版本v1.8.1.12
server版本v1.8.1.12
TODO 动态生成PWA的manifest
org.jetbrains.projector.server.core.websocket.HttpWsServer.Companion#getResourceName
当前实现的是纯静态的服务器,加载一个kotlin编译成的js文件
入口是projector-client-web/src/main/kotlin/org/jetbrains/projector/client/web/Main.kt
org.jetbrains.projector.client.web.Application#start
入口是启动一个状态机做死循环,初始状态是
private var currentState: ClientState = ClientState.UninitializedPage
第一个队列事件是
projector-client-web/src/main/kotlin/org/jetbrains/projector/client/web/state/ClientAction.kt
org.jetbrains.projector.client.web.state.ClientAction.Start
因此处理过程是
org.jetbrains.projector.client.web.state.ClientState.UninitializedPage#consume
下一个状态是WaitingOpening
想让index.html的内容变成ssr,需要从HttpWsServer开始修改成ssr。或者从更前面做拦截把GET请求内置资源的部分转到独立服务器 ,
官方之前给过electron的客户端,说明分离客户端的网页是可行的,只需要把客户端尝试独立部署即可完成各种自定义开发。且无需修改服务器代码,服务器的内置代码仅作为兜底使用即可
TODO 让projector支持从urlpath鉴权规避PWA的限制
TODO
TODO 待继续研究 考虑实现通用的jcef webview显示转发成canvas方案
TODO 再写一个server,接受所有projector client的上报,提供个网页支持动态从服务器获取完成的url并完成本地的端口转发
0 Comments