Commit 298ae9a4 authored by 王进波's avatar 王进波

update

parent 0bcad0a3
...@@ -60,7 +60,7 @@ TenantService安装及后续自动部署可以通过一条命令触发,说明 ...@@ -60,7 +60,7 @@ TenantService安装及后续自动部署可以通过一条命令触发,说明
```shell ```shell
. .
├── CloudPlatformAssistant #该文件夹为云平台早期原型,以控制台应用程序承载,具备单机运维的创建站点,│ 销毁站点的基本功能,现在项目对此没有依赖,运服务器中重启 VPN 以及 微信│ token更新的服务是用的这个 ├── CloudPlatformAssistant #该文件夹为云平台早期原型,以控制台应用程序承载,具备单机运维的创建站点,销毁站点的基本功能,现在项目对此没有依赖,运服务器中重启 VPN 以及 微信token更新的服务是用的这个
│   ├── App.config │   ├── App.config
│   ├── BaseTask.cs │   ├── BaseTask.cs
│   ├── CloudPlatformAssistant.csproj │   ├── CloudPlatformAssistant.csproj
...@@ -329,7 +329,7 @@ TenantService安装及后续自动部署可以通过一条命令触发,说明 ...@@ -329,7 +329,7 @@ TenantService安装及后续自动部署可以通过一条命令触发,说明
│   ├── Status # 子站及子站主机状态维护 │   ├── Status # 子站及子站主机状态维护
│   │   ├── HostStatus.cs │   │   ├── HostStatus.cs
│   │   └── ServiceStatus.cs │   │   └── ServiceStatus.cs
│   ├── TenantAgent.cs # TenantServer的非ThriftServer服务,包括启动后的检查和必要的初始化操作 │   ├── TenantAgent.cs # TenantServer的非ThriftServer服务,包括启动后的检查和必要的初始化操作
│   ├── TenantClient │   ├── TenantClient
│   │   └── BaseClientOfAdmin.cs │   │   └── BaseClientOfAdmin.cs
│   ├── TenantImpl # TenantServer的自定义Thrift接口实现 │   ├── TenantImpl # TenantServer的自定义Thrift接口实现
...@@ -411,7 +411,7 @@ TenantService安装及后续自动部署可以通过一条命令触发,说明 ...@@ -411,7 +411,7 @@ TenantService安装及后续自动部署可以通过一条命令触发,说明
#### 编译和部署 #### 编译和部署
这个服务在部署时需要按照项目名称不同,在配置文件中设置ServiceName配置项,服务会据此安装成不同的名称,即不同项目会对应一个WindowsService,但是只有一套代码,差异化的配置文件同样使用了 Visual Studio 插件 [ConfigTransform](https://marketplace.visualstudio.com/items?itemName=GolanAvraham.ConfigurationTransform) ,编译对应项目的服务是,需要选择对应的编译方案。 这个服务在部署时需要按照项目名称不同,在配置文件中设置ServiceName配置项,服务会据此安装成不同的名称,即不同项目会单独安装成一个WindowsService,但是共用同一套代码,差异化的配置文件同样使用了 Visual Studio 插件 [ConfigTransform](https://marketplace.visualstudio.com/items?itemName=GolanAvraham.ConfigurationTransform) ,编译对应项目的服务是,需要选择对应的编译方案。
### 营收系统 ### 营收系统
...@@ -423,17 +423,17 @@ TenantService安装及后续自动部署可以通过一条命令触发,说明 ...@@ -423,17 +423,17 @@ TenantService安装及后续自动部署可以通过一条命令触发,说明
营收系统是将第三方营收系统通过 Nginx 服务端跨域后嵌入到我们系统页面中的一个小小的 Hack,除了 Nginx 服务端跨域以外,还通过 Fiddler 截获和修改的请求的资源来达到修改页面样式的目的以及在 Fiddler 中进行免登录代理,免登录代理需要一个 Python 的简单脚本支持,这个脚本被部署成一个 WindowsService ,安装在 12.12 服务器中,Fiddler也部署在 12.12 服务器中。下面详细介绍下 营收系统是将第三方营收系统通过 Nginx 服务端跨域后嵌入到我们系统页面中的一个小小的 Hack,除了 Nginx 服务端跨域以外,还通过 Fiddler 截获和修改的请求的资源来达到修改页面样式的目的以及在 Fiddler 中进行免登录代理,免登录代理需要一个 Python 的简单脚本支持,这个脚本被部署成一个 WindowsService ,安装在 12.12 服务器中,Fiddler也部署在 12.12 服务器中。下面详细介绍下
#### Nginx服务端跨域 #### 1. Nginx服务端跨域
营收系统源域名为 http://demo.hbtsoft.cn:8081 。我们注册了一个 hbtsoft.wohitech.com的域名,在wohitech.com云服务器的Nginx中反向代理到 12.12 服务器的 8888 端口,监听该端口的程序为Fiddler,最终请求被转发给域名http://demo.hbtsoft.cn:8081。 营收系统源域名为 http://demo.hbtsoft.cn:8081 。我们注册了一个 hbtsoft.wohitech.com的域名,在wohitech.com云服务器的Nginx中反向代理到 12.12 服务器的 8888 端口,监听该端口的程序为Fiddler,最终请求被转发给域名http://demo.hbtsoft.cn:8081。
#### Fiddler 拦截 #### 2. Fiddler 拦截
Fiddler 中做了很多配置,不能随意替换,Fiddler程序的启动目录为 12.12 服务器的 D:\Programs\Fiddler 目录 Fiddler 中做了很多配置,不能随意替换,Fiddler程序的启动目录为 12.12 服务器的 D:\Programs\Fiddler 目录
Fiddler 拦截请求后,会通过AutoResponser功能匹配请求是否为静态资源,是否在以配置的资源列表中,如果是,则读取保存在本地的静态资源作为请求的真实响应,欺骗浏览器,从而达到修改样式的目的; Fiddler 拦截请求后,会通过AutoResponser功能匹配请求是否为静态资源,是否在以配置的资源列表中,如果是,则读取保存在本地的静态资源作为请求的真实响应,欺骗浏览器,从而达到修改样式的目的;
除了这样修改样式,还需要对每一次经过 Fiddler 的请求判断是否为转发到 http://demo.hbtsoft.cn:8081 的,如果是,则读取保存在12.12服务器上 `FiddlerScript` 脚本文件中的 `JSessionID` ,调用 Python 的FlaskServer 的api 判断是否过期,如果过期,则自动登录并获取最新的JSessionID保存在本地供后续请求使用。 除了这样修改样式,还需要对每一次经过 Fiddler 的请求判断是否为转发到 http://demo.hbtsoft.cn:8081 的,如果是,则读取保存在12.12服务器上 `FiddlerScript` 脚本文件中的 `JSessionID` ,调用 Python 的 FlaskServer 的api 判断是否过期,如果过期,则自动登录并获取最新的 JSessionID 保存在本地供后续请求使用。
具体逻辑在下面代码中,代码是`FiddlerScript`中做了修改的两个方法,分别对应请求转发前和请求响应前两个阶段对请求所做的过滤和修改操作。 具体逻辑在下面代码中,代码是`FiddlerScript`中做了修改的两个方法,分别对应请求转发前和请求响应前两个阶段对请求所做的过滤和修改操作。
...@@ -569,11 +569,11 @@ Fiddler 拦截请求后,会通过AutoResponser功能匹配请求是否为静 ...@@ -569,11 +569,11 @@ Fiddler 拦截请求后,会通过AutoResponser功能匹配请求是否为静
} }
``` ```
#### FlaskServer #### 3. FlaskServer
这只是一个不到100行代码的Python脚本,主要功能是实现JSessionID的过期检验和登录并更新FiddlerScript本地JSessionID,将这两个操作通过Flask的包发布成api,供FiddlerScript中的请求处理消费。 这只是一个不到100行代码的Python脚本,主要功能是实现JSessionID的过期检验和登录并更新FiddlerScript本地JSessionID,将这两个操作通过Flask的包发布成api,供FiddlerScript中的请求处理消费。
代码位置:12.12服务器的 D:\FlaskServer 目录下 代码位置:12.12服务器的 D:\FlaskServer 目录下,FlaskServer在12.12上部署成一个WindowsService,就叫FlaskServer
### BIM三位数据模型展示 ### BIM三位数据模型展示
...@@ -585,6 +585,8 @@ Fiddler 拦截请求后,会通过AutoResponser功能匹配请求是否为静 ...@@ -585,6 +585,8 @@ Fiddler 拦截请求后,会通过AutoResponser功能匹配请求是否为静
该项目也没什么好说的,用了一个国外大神写的开源插件,将AutoDesk的Revit三维数据模型转换成了支持Three.js 的Json数据格式,然后用Three.js 进行了简单展示。具体看代码,包含了项目的十多个数据。 该项目也没什么好说的,用了一个国外大神写的开源插件,将AutoDesk的Revit三维数据模型转换成了支持Three.js 的Json数据格式,然后用Three.js 进行了简单展示。具体看代码,包含了项目的十多个数据。
李俊杰当时在公司内网一台服务器上安装了AutoDesk的桌面套件,然后我找了工具进行了破解,数据转换的插件已经在上面安装了,如果后期需要在新的AutoDesk上安装该插件,需要到下面的插件GitHub主页上去下载代码,编译成插件,然后参照官网的插件安装方法,将其安装到AutoDesk上再用。
关于这个插件以及数据转换的具体资料: 关于这个插件以及数据转换的具体资料:
[Add-In Integration](http://help.autodesk.com/view/RVT/2019/ENU/?guid=Revit_API_Revit_API_Developers_Guide_Introduction_Add_In_Integration_html) [Add-In Integration](http://help.autodesk.com/view/RVT/2019/ENU/?guid=Revit_API_Revit_API_Developers_Guide_Introduction_Add_In_Integration_html)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment