ezuikit-js 0.7.0 → 7.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/demos/EZUIKitHD/EZUIKitHD.html +171 -0
  2. package/demos/EZUIKitHD/js/jsWebControl-1.0.0.min.js +80 -0
  3. package/demos/base-demo/base.html +116 -116
  4. package/demos/base-demo/ezuikit.js +29 -29
  5. package/demos/base-demo/ezuikit_static/v65/v1/js/SuperRender_10.js +394 -394
  6. package/demos/base-demo/ezuikit_static/v65/v1/js/playctrl/DecodeWorker.js +617 -617
  7. package/demos/base-demo/ezuikit_static/v65/v1/js/playctrl/JSPlaySDKInterface.js +2052 -2052
  8. package/demos/base-demo/ezuikit_static/v65/v1/js/playctrl/SuperRender_10.js +395 -395
  9. package/demos/base-demo/ezuikit_static/v65/v1/js/transform/SystemTransform.js +22 -22
  10. package/demos/base-demo/ezuikit_static/v65/v1/js/tts-v4.js +346 -346
  11. package/demos/base-demo/ezuikit_static/v65/v1/rec/jquery.min.js +1 -1
  12. package/demos/base-demo/ezuikit_static/v65/v1/talk/tts-v4.js +346 -346
  13. package/demos/base-demo/ezuikit_static/v65/v2/rec/jquery.min.js +1 -1
  14. package/demos/base-demo/ezuikit_static/v65/v2/talk/tts-v4.js +343 -343
  15. package/demos/base-demo/hls.html +23 -23
  16. package/demos/base-demo/index.html +116 -116
  17. package/demos/base-demo/localDecoder.html +117 -117
  18. package/demos/base-demo/mobileLive.html +116 -116
  19. package/demos/base-demo/mobileRec.html +115 -115
  20. package/demos/base-demo/multi.html +128 -128
  21. package/demos/base-demo/pcLive.html +116 -116
  22. package/demos/base-demo/pcRec.html +115 -115
  23. package/demos/base-demo/template.html +123 -123
  24. package/demos/base-demo/themeData.html +231 -231
  25. package/demos/nginx-demo/conf/fastcgi.conf +26 -26
  26. package/demos/nginx-demo/conf/fastcgi_params +25 -25
  27. package/demos/nginx-demo/conf/koi-utf +109 -109
  28. package/demos/nginx-demo/conf/koi-win +103 -103
  29. package/demos/nginx-demo/conf/mime.types +95 -95
  30. package/demos/nginx-demo/conf/nginx.conf +121 -121
  31. package/demos/nginx-demo/conf/scgi_params +17 -17
  32. package/demos/nginx-demo/conf/uwsgi_params +17 -17
  33. package/demos/nginx-demo/conf/win-utf +126 -126
  34. package/demos/nginx-demo/contrib/README +21 -21
  35. package/demos/nginx-demo/contrib/geo2nginx.pl +58 -58
  36. package/demos/nginx-demo/contrib/unicode2nginx/koi-utf +131 -131
  37. package/demos/nginx-demo/contrib/unicode2nginx/unicode-to-nginx.pl +48 -48
  38. package/demos/nginx-demo/contrib/unicode2nginx/win-utf +130 -130
  39. package/demos/nginx-demo/contrib/vim/ftdetect/nginx.vim +4 -4
  40. package/demos/nginx-demo/contrib/vim/ftplugin/nginx.vim +1 -1
  41. package/demos/nginx-demo/contrib/vim/indent/nginx.vim +11 -11
  42. package/demos/nginx-demo/contrib/vim/syntax/nginx.vim +2268 -2268
  43. package/demos/nginx-demo/docs/CHANGES +8115 -8115
  44. package/demos/nginx-demo/docs/CHANGES.ru +8252 -8252
  45. package/demos/nginx-demo/docs/LICENSE +26 -26
  46. package/demos/nginx-demo/docs/OpenSSL.LICENSE +127 -127
  47. package/demos/nginx-demo/docs/PCRE.LICENCE +93 -93
  48. package/demos/nginx-demo/docs/README +3 -3
  49. package/demos/nginx-demo/docs/zlib.LICENSE +20 -20
  50. package/demos/nginx-demo/html/50x.html +21 -21
  51. package/demos/nginx-demo/html/ezuikit5/ezuikit.js +29 -29
  52. package/demos/nginx-demo/html/ezuikit5/index.html +116 -116
  53. package/demos/nginx-demo/html/ezuikit5/server.js +67 -67
  54. package/demos/nginx-demo/html/index.html +16 -16
  55. package/demos/nginx-demo/html/js/adapeter.js +5496 -5496
  56. package/demos/nginx-demo/html/js/janus.js +3507 -3507
  57. package/demos/nginx-demo/html/js/jquery.min.js +1 -1
  58. package/demos/nginx-demo/html/js/sts.js +340 -340
  59. package/demos/nginx-demo/logs/access.log +109 -109
  60. package/demos/nginx-demo/logs/error.log +15 -15
  61. package/demos/nginx-demo/logs/nginx.pid +1 -1
  62. package/demos/react-demo/README.md +68 -68
  63. package/demos/react-demo/package.json +36 -36
  64. package/demos/react-demo/public/index.html +43 -43
  65. package/demos/react-demo/public/manifest.json +25 -25
  66. package/demos/react-demo/public/robots.txt +3 -3
  67. package/demos/react-demo/src/App.css +38 -38
  68. package/demos/react-demo/src/App.js +114 -114
  69. package/demos/react-demo/src/App.test.js +9 -9
  70. package/demos/react-demo/src/index.css +13 -13
  71. package/demos/react-demo/src/index.js +17 -17
  72. package/demos/react-demo/src/logo.svg +7 -7
  73. package/demos/react-demo/src/serviceWorker.js +141 -141
  74. package/demos/react-demo/src/setupTests.js +5 -5
  75. package/demos/vue-demo/README.md +24 -24
  76. package/demos/vue-demo/babel.config.js +5 -5
  77. package/demos/vue-demo/package.json +43 -43
  78. package/demos/vue-demo/public/index.html +17 -17
  79. package/demos/vue-demo/src/App.vue +27 -27
  80. package/demos/vue-demo/src/components/EZUIKitJs.vue +115 -115
  81. package/demos/vue-demo/src/main.js +8 -8
  82. package/ezuikit.js +9785 -681
  83. package/ezuikit_static/v65/v1/js/SuperRender_10.js +394 -394
  84. package/ezuikit_static/v65/v1/js/playctrl/DecodeWorker.js +617 -617
  85. package/ezuikit_static/v65/v1/js/playctrl/JSPlaySDKInterface.js +2052 -2052
  86. package/ezuikit_static/v65/v1/js/playctrl/SuperRender_10.js +395 -395
  87. package/ezuikit_static/v65/v1/js/transform/SystemTransform.js +22 -22
  88. package/ezuikit_static/v65/v1/js/tts-v4.js +346 -346
  89. package/ezuikit_static/v65/v1/rec/jquery.min.js +1 -1
  90. package/ezuikit_static/v65/v1/talk/tts-v4.js +346 -346
  91. package/ezuikit_static/v65/v2/js/jsPluginV2-2.0.1.min.js +74 -11
  92. package/ezuikit_static/v65/v2/rec/jquery.min.js +1 -1
  93. package/ezuikit_static/v65/v2/talk/tts-v4.js +343 -343
  94. package/package.json +1 -1
@@ -15936,8 +15936,8 @@ var TimeLine$1 = function TimeLine(jsPlugin) {
15936
15936
  // 只画一次线
15937
15937
  that.drawSolidLine(i * that.canvasWidth / dotNum, 8, i * that.canvasWidth / dotNum, that.canvasHeight / 5 * 0.5 + 8, 1, lineColor);
15938
15938
  }
15939
- /**
15940
- * 偏移距离超过60,setSeconds会每次累加1到分钟,因此绘图完成后需要复原到当前分钟,再次计算偏移
15939
+ /**
15940
+ * 偏移距离超过60,setSeconds会每次累加1到分钟,因此绘图完成后需要复原到当前分钟,再次计算偏移
15941
15941
  */
15942
15942
 
15943
15943
 
@@ -33751,8 +33751,8 @@ var fragmentYUVShader = ['precision highp float;', 'varying highp vec2 textureCo
33751
33751
  this.initTextures();
33752
33752
  }
33753
33753
  }
33754
- /**
33755
- * 初始化WebGL上下文
33754
+ /**
33755
+ * 初始化WebGL上下文
33756
33756
  */
33757
33757
 
33758
33758
  RenderManager.prototype.initContextGL = function () {
@@ -33772,10 +33772,10 @@ var fragmentYUVShader = ['precision highp float;', 'varying highp vec2 textureCo
33772
33772
  this.contextGL = gl;
33773
33773
  console.log("WebGL1.0");
33774
33774
  };
33775
- /**
33776
- * 初始化着色器程序
33777
- * @param vertexShaderScript 顶点着色器脚本
33778
- * @param fragmentShaderScript 片段着色器脚本
33775
+ /**
33776
+ * 初始化着色器程序
33777
+ * @param vertexShaderScript 顶点着色器脚本
33778
+ * @param fragmentShaderScript 片段着色器脚本
33779
33779
  */
33780
33780
 
33781
33781
 
@@ -33811,8 +33811,8 @@ var fragmentYUVShader = ['precision highp float;', 'varying highp vec2 textureCo
33811
33811
  gl.deleteShader(fragmentShader);
33812
33812
  return program;
33813
33813
  };
33814
- /**
33815
- * 初始化数据缓存
33814
+ /**
33815
+ * 初始化数据缓存
33816
33816
  */
33817
33817
 
33818
33818
 
@@ -33829,8 +33829,8 @@ var fragmentYUVShader = ['precision highp float;', 'varying highp vec2 textureCo
33829
33829
  this.vertexPosBuffer = vertexPosBuffer;
33830
33830
  this.texturePosBuffer = texturePosBuffer;
33831
33831
  };
33832
- /**
33833
- * 创建纹理
33832
+ /**
33833
+ * 创建纹理
33834
33834
  */
33835
33835
 
33836
33836
 
@@ -33845,8 +33845,8 @@ var fragmentYUVShader = ['precision highp float;', 'varying highp vec2 textureCo
33845
33845
  gl.bindTexture(gl.TEXTURE_2D, null);
33846
33846
  return textureRef;
33847
33847
  };
33848
- /**
33849
- * 初始化YUV纹理
33848
+ /**
33849
+ * 初始化YUV纹理
33850
33850
  */
33851
33851
 
33852
33852
 
@@ -33868,11 +33868,11 @@ var fragmentYUVShader = ['precision highp float;', 'varying highp vec2 textureCo
33868
33868
  this.vTextureRef = vTextureRef;
33869
33869
  gl.useProgram(null);
33870
33870
  };
33871
- /**
33872
- * 显示帧数据
33873
- * @param nWidth 宽度
33874
- * @param nHeight 高度
33875
- * @param nHeight 帧数据
33871
+ /**
33872
+ * 显示帧数据
33873
+ * @param nWidth 宽度
33874
+ * @param nHeight 高度
33875
+ * @param nHeight 帧数据
33876
33876
  */
33877
33877
 
33878
33878
 
@@ -33917,11 +33917,11 @@ var fragmentYUVShader = ['precision highp float;', 'varying highp vec2 textureCo
33917
33917
  gl.disableVertexAttribArray(texturePosRef);
33918
33918
  gl.useProgram(null);
33919
33919
  };
33920
- /**
33921
- * 上传YUV数据到纹理
33922
- * @param nWidth 宽度
33923
- * @param nHeight 高度
33924
- * @param nHeight 帧数据
33920
+ /**
33921
+ * 上传YUV数据到纹理
33922
+ * @param nWidth 宽度
33923
+ * @param nHeight 高度
33924
+ * @param nHeight 帧数据
33925
33925
  */
33926
33926
 
33927
33927
 
@@ -34001,9 +34001,9 @@ var fragmentYUVShader = ['precision highp float;', 'varying highp vec2 textureCo
34001
34001
  crSonData = null;
34002
34002
  }
34003
34003
  };
34004
- /**
34005
- * 设置显示区域
34006
- * @param stDisplayRect 显示区域
34004
+ /**
34005
+ * 设置显示区域
34006
+ * @param stDisplayRect 显示区域
34007
34007
  */
34008
34008
 
34009
34009
 
@@ -34028,8 +34028,8 @@ var fragmentYUVShader = ['precision highp float;', 'varying highp vec2 textureCo
34028
34028
  gl.bufferSubData(gl.ARRAY_BUFFER, 0, texturePosValues);
34029
34029
  gl.bindBuffer(gl.ARRAY_BUFFER, null);
34030
34030
  };
34031
- /**
34032
- * 释放显示资源
34031
+ /**
34032
+ * 释放显示资源
34033
34033
  */
34034
34034
 
34035
34035
 
@@ -1,117 +1,117 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
-
4
- <head>
5
- <meta charset="UTF-8">
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
7
- <title>Document</title>
8
- <script src="./ezuikit.js"></script>
9
- </head>
10
-
11
- <body>
12
- <div className="demo">
13
- <h2>视频模式使用示例:</h2>
14
- <div id="video-container" style="width:600px;">
15
- </div>
16
- <div>
17
- <button onClick="play()">play</button>
18
- <button onClick="stop()">stop</button>
19
- <button onClick="getOSDTime()">getOSDTime</button>
20
- <button onClick="getOSDTime2()">getOSDTime2</button>
21
- <button onClick="capturePicture()">capturePicture</button>
22
- <button onClick="openSound()">openSound</button>
23
- <button onClick="closeSound()">closeSound</button>
24
- <button onClick="startSave()">startSave</button>
25
- <button onClick="stopSave()">stopSave</button>
26
- <button onClick="ezopenStartTalk()">开始对讲</button>
27
- <button onClick="ezopenStopTalk()">结束对讲</button>
28
- <button onClick="fullScreen()">全屏</button>
29
- </div>
30
- <p style="font-style: italic;">播放多个视频,可初始化多个实例,参考:/demos/base-demo/multi-demo</p>
31
- </div>
32
- <script>
33
- var playr;
34
- fetch('https://open.ys7.com/jssdk/ezopen/demo/token')
35
- .then(response => response.json())
36
- .then(res => {
37
- var accessToken = res.data.accessToken;
38
- playr = new EZUIKit.EZUIKitPlayer({
39
- id: 'video-container', // 视频容器ID
40
- accessToken: accessToken,
41
- url: 'ezopen://open.ys7.com/G39444019/1.live',
42
- template: 'simple', // simple - 极简版;standard-标准版;security - 安防版(预览回放);voice-语音版; theme-可配置主题;
43
- plugin: ['talk'], // 加载插件,talk-对讲
44
- width: 600,
45
- height: 400,
46
- });
47
- });
48
- function fullScreen() {
49
- var playPromise = playr.fullScreen();
50
- playPromise.then((data) => {
51
- console.log("promise 获取 数据", data)
52
- })
53
- }
54
- function play() {
55
- var playPromise = playr.play();
56
- playPromise.then((data) => {
57
- console.log("promise 获取 数据", data)
58
- })
59
- }
60
- function stop() {
61
- var stopPromise = playr.stop();
62
- stopPromise.then((data) => {
63
- console.log("promise 获取 数据", data)
64
- })
65
- }
66
- function getOSDTime() {
67
- var getOSDTimePromise = playr.getOSDTime();
68
- getOSDTimePromise.then((data) => {
69
- console.log("promise 获取 数据", data)
70
- })
71
- }
72
- function getOSDTime2() {
73
- var getOSDTimePromise = playr2.getOSDTime();
74
- getOSDTimePromise.then((data) => {
75
- console.log("promise 获取 数据", data)
76
- })
77
- }
78
- function capturePicture() {
79
- var capturePicturePromise = playr.capturePicture();
80
- capturePicturePromise.then((data) => {
81
- console.log("promise 获取 数据", data)
82
- })
83
- }
84
- function openSound() {
85
- var openSoundPromise = playr.openSound();
86
- openSoundPromise.then((data) => {
87
- console.log("promise 获取 数据", data)
88
- })
89
- }
90
- function closeSound() {
91
- var closeSoundPromise = playr.closeSound();
92
- closeSoundPromise.then((data) => {
93
- console.log("promise 获取 数据", data)
94
- })
95
- }
96
- function startSave() {
97
- var startSavePromise = playr.startSave(`${new Date().getTime()}`);
98
- startSavePromise.then((data) => {
99
- console.log("promise 获取 数据", data)
100
- })
101
- }
102
- function stopSave() {
103
- var stopSavePromise = playr.stopSave();
104
- stopSavePromise.then((data) => {
105
- console.log("promise 获取 数据", data)
106
- })
107
- }
108
- function ezopenStartTalk() {
109
- playr.startTalk();
110
- }
111
- function ezopenStopTalk() {
112
- playr.stopTalk();
113
- }
114
- </script>
115
- </body>
116
-
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
7
+ <title>Document</title>
8
+ <script src="./ezuikit.js"></script>
9
+ </head>
10
+
11
+ <body>
12
+ <div className="demo">
13
+ <h2>视频模式使用示例:</h2>
14
+ <div id="video-container" style="width:600px;">
15
+ </div>
16
+ <div>
17
+ <button onClick="play()">play</button>
18
+ <button onClick="stop()">stop</button>
19
+ <button onClick="getOSDTime()">getOSDTime</button>
20
+ <button onClick="getOSDTime2()">getOSDTime2</button>
21
+ <button onClick="capturePicture()">capturePicture</button>
22
+ <button onClick="openSound()">openSound</button>
23
+ <button onClick="closeSound()">closeSound</button>
24
+ <button onClick="startSave()">startSave</button>
25
+ <button onClick="stopSave()">stopSave</button>
26
+ <button onClick="ezopenStartTalk()">开始对讲</button>
27
+ <button onClick="ezopenStopTalk()">结束对讲</button>
28
+ <button onClick="fullScreen()">全屏</button>
29
+ </div>
30
+ <p style="font-style: italic;">播放多个视频,可初始化多个实例,参考:/demos/base-demo/multi-demo</p>
31
+ </div>
32
+ <script>
33
+ var playr;
34
+ fetch('https://open.ys7.com/jssdk/ezopen/demo/token')
35
+ .then(response => response.json())
36
+ .then(res => {
37
+ var accessToken = res.data.accessToken;
38
+ playr = new EZUIKit.EZUIKitPlayer({
39
+ id: 'video-container', // 视频容器ID
40
+ accessToken: accessToken,
41
+ url: 'ezopen://open.ys7.com/G39444019/1.live',
42
+ template: 'simple', // simple - 极简版;standard-标准版;security - 安防版(预览回放);voice-语音版; theme-可配置主题;
43
+ plugin: ['talk'], // 加载插件,talk-对讲
44
+ width: 600,
45
+ height: 400,
46
+ });
47
+ });
48
+ function fullScreen() {
49
+ var playPromise = playr.fullScreen();
50
+ playPromise.then((data) => {
51
+ console.log("promise 获取 数据", data)
52
+ })
53
+ }
54
+ function play() {
55
+ var playPromise = playr.play();
56
+ playPromise.then((data) => {
57
+ console.log("promise 获取 数据", data)
58
+ })
59
+ }
60
+ function stop() {
61
+ var stopPromise = playr.stop();
62
+ stopPromise.then((data) => {
63
+ console.log("promise 获取 数据", data)
64
+ })
65
+ }
66
+ function getOSDTime() {
67
+ var getOSDTimePromise = playr.getOSDTime();
68
+ getOSDTimePromise.then((data) => {
69
+ console.log("promise 获取 数据", data)
70
+ })
71
+ }
72
+ function getOSDTime2() {
73
+ var getOSDTimePromise = playr2.getOSDTime();
74
+ getOSDTimePromise.then((data) => {
75
+ console.log("promise 获取 数据", data)
76
+ })
77
+ }
78
+ function capturePicture() {
79
+ var capturePicturePromise = playr.capturePicture();
80
+ capturePicturePromise.then((data) => {
81
+ console.log("promise 获取 数据", data)
82
+ })
83
+ }
84
+ function openSound() {
85
+ var openSoundPromise = playr.openSound();
86
+ openSoundPromise.then((data) => {
87
+ console.log("promise 获取 数据", data)
88
+ })
89
+ }
90
+ function closeSound() {
91
+ var closeSoundPromise = playr.closeSound();
92
+ closeSoundPromise.then((data) => {
93
+ console.log("promise 获取 数据", data)
94
+ })
95
+ }
96
+ function startSave() {
97
+ var startSavePromise = playr.startSave(`${new Date().getTime()}`);
98
+ startSavePromise.then((data) => {
99
+ console.log("promise 获取 数据", data)
100
+ })
101
+ }
102
+ function stopSave() {
103
+ var stopSavePromise = playr.stopSave();
104
+ stopSavePromise.then((data) => {
105
+ console.log("promise 获取 数据", data)
106
+ })
107
+ }
108
+ function ezopenStartTalk() {
109
+ playr.startTalk();
110
+ }
111
+ function ezopenStopTalk() {
112
+ playr.stopTalk();
113
+ }
114
+ </script>
115
+ </body>
116
+
117
117
  </html>
@@ -1,67 +1,67 @@
1
- const http = require('http')
2
- const url = require('url')
3
- const fs = require('fs')
4
- const path = require('path')
5
- // const mime = require('mime')
6
-
7
- const mime = {
8
- map: {
9
- 'html': 'text/html',
10
- 'xhtml': 'application/xhtml+xml',
11
- 'xml': 'text/xml',
12
- 'js': 'application/javascript',
13
- 'wasm': 'application/wasm',
14
- 'map': 'magnus-internal/imagemap',
15
- 'css': 'text/css',
16
- 'png': 'image/png',
17
- 'jpg': 'image/jpeg',
18
- 'jpeg': 'image/jpeg',
19
- 'gif': 'image/gif',
20
- 'ico': 'image/vnd.microsoft.icon'
21
- },
22
- getType: function (ext) {
23
- let conType = this.map[ext]
24
- return conType || 'text/plain'
25
- }
26
- }
27
-
28
- const httpServer = http.createServer()
29
-
30
- httpServer.on('request', (req, res) => {
31
- console.log(`[receive request] ${req.method} ${req.url}`)
32
-
33
- const urlJson = url.parse(req.url)
34
- let { pathname } = urlJson
35
- let ext = pathname.split('.').pop()
36
- // all
37
- // res.setHeader('Cross-Origin-Embedder-Policy', 'require-corp')
38
- // res.setHeader('Cross-Origin-Opener-Policy', 'same-origin')
39
- // just page file
40
- if (ext === 'html' || ext === 'xhtml'|| ext === 'js') {
41
- //跨域隔离
42
- res.setHeader('Cross-Origin-Embedder-Policy', 'require-corp')
43
- res.setHeader('Cross-Origin-Opener-Policy', 'same-origin')
44
- res.setHeader('Access-Control-Allow-Origin', 'https://resource.eziot.com')
45
- //影响报告
46
- //res.setHeader('Cross-Origin-Embedder-Policy-Report-Only', 'require-corp')
47
- //res.setHeader('Cross-Origin-Opener-Policy-Report-Only', 'same-origin')
48
- }
49
-
50
- let contentType = mime.getType(ext)
51
- res.setHeader('Content-Type', contentType)
52
-
53
- fs.readFile(path.resolve(__dirname, pathname.substr(1)), (err, data) => {
54
- if (err) {
55
- res.writeHead(404)
56
- res.end('Not found.')
57
- } else {
58
- res.writeHead(200)
59
- res.end(data)
60
- }
61
- })
62
- })
63
-
64
- const PORT = 9090
65
- httpServer.listen(9090, () => {
66
- console.log(`Server running at http://localhost:${PORT}`)
67
- })
1
+ const http = require('http')
2
+ const url = require('url')
3
+ const fs = require('fs')
4
+ const path = require('path')
5
+ // const mime = require('mime')
6
+
7
+ const mime = {
8
+ map: {
9
+ 'html': 'text/html',
10
+ 'xhtml': 'application/xhtml+xml',
11
+ 'xml': 'text/xml',
12
+ 'js': 'application/javascript',
13
+ 'wasm': 'application/wasm',
14
+ 'map': 'magnus-internal/imagemap',
15
+ 'css': 'text/css',
16
+ 'png': 'image/png',
17
+ 'jpg': 'image/jpeg',
18
+ 'jpeg': 'image/jpeg',
19
+ 'gif': 'image/gif',
20
+ 'ico': 'image/vnd.microsoft.icon'
21
+ },
22
+ getType: function (ext) {
23
+ let conType = this.map[ext]
24
+ return conType || 'text/plain'
25
+ }
26
+ }
27
+
28
+ const httpServer = http.createServer()
29
+
30
+ httpServer.on('request', (req, res) => {
31
+ console.log(`[receive request] ${req.method} ${req.url}`)
32
+
33
+ const urlJson = url.parse(req.url)
34
+ let { pathname } = urlJson
35
+ let ext = pathname.split('.').pop()
36
+ // all
37
+ // res.setHeader('Cross-Origin-Embedder-Policy', 'require-corp')
38
+ // res.setHeader('Cross-Origin-Opener-Policy', 'same-origin')
39
+ // just page file
40
+ if (ext === 'html' || ext === 'xhtml'|| ext === 'js') {
41
+ //跨域隔离
42
+ res.setHeader('Cross-Origin-Embedder-Policy', 'require-corp')
43
+ res.setHeader('Cross-Origin-Opener-Policy', 'same-origin')
44
+ res.setHeader('Access-Control-Allow-Origin', 'https://resource.eziot.com')
45
+ //影响报告
46
+ //res.setHeader('Cross-Origin-Embedder-Policy-Report-Only', 'require-corp')
47
+ //res.setHeader('Cross-Origin-Opener-Policy-Report-Only', 'same-origin')
48
+ }
49
+
50
+ let contentType = mime.getType(ext)
51
+ res.setHeader('Content-Type', contentType)
52
+
53
+ fs.readFile(path.resolve(__dirname, pathname.substr(1)), (err, data) => {
54
+ if (err) {
55
+ res.writeHead(404)
56
+ res.end('Not found.')
57
+ } else {
58
+ res.writeHead(200)
59
+ res.end(data)
60
+ }
61
+ })
62
+ })
63
+
64
+ const PORT = 9090
65
+ httpServer.listen(9090, () => {
66
+ console.log(`Server running at http://localhost:${PORT}`)
67
+ })
@@ -1,16 +1,16 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>Error</title>
5
- <style>
6
- body {
7
- width: 35em;
8
- margin: 0 auto;
9
- font-family: Tahoma, Verdana, Arial, sans-serif;
10
- }
11
- </style>
12
- </head>
13
- <body>
14
- <h1>this is index page.</h1>
15
- </body>
16
- </html>
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Error</title>
5
+ <style>
6
+ body {
7
+ width: 35em;
8
+ margin: 0 auto;
9
+ font-family: Tahoma, Verdana, Arial, sans-serif;
10
+ }
11
+ </style>
12
+ </head>
13
+ <body>
14
+ <h1>this is index page.</h1>
15
+ </body>
16
+ </html>