質問編集履歴
3
ヘッダーにkeep-aliveを追加したときのキャプチャを追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -249,3 +249,33 @@
|
|
249
249
|
![http1.1を指定](4839894939d0351320c449f469cd1f81.png)
|
250
250
|
|
251
251
|
そして、データの欠落についてですが、まだ改善は見られておりません。
|
252
|
+
|
253
|
+
|
254
|
+
|
255
|
+
---
|
256
|
+
|
257
|
+
|
258
|
+
|
259
|
+
**<2021/1/16 14:03 追記>**
|
260
|
+
|
261
|
+
|
262
|
+
|
263
|
+
WSGIRequestHandlerでhttp1.1の指定に加えて、Responseヘッダにkeep-aliveを追加。
|
264
|
+
|
265
|
+
```python
|
266
|
+
|
267
|
+
resp = Response(event_stream(), mimetype="text/event-stream")
|
268
|
+
|
269
|
+
resp.headers['Connection'] = 'keep-alive'
|
270
|
+
|
271
|
+
return resp
|
272
|
+
|
273
|
+
```
|
274
|
+
|
275
|
+
Connectionにkeep-aliveが追加されるようにはなったのですが、Connection:closeは残ったまま。
|
276
|
+
|
277
|
+
データの欠落も、まだ改善は見られておりません。
|
278
|
+
|
279
|
+
|
280
|
+
|
281
|
+
![イメージ説明](bb5a5709058037d68e7e28237803c994.png)
|
2
http1.1を試した結果を追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -223,3 +223,29 @@
|
|
223
223
|
|
224
224
|
|
225
225
|
些細なことでも構いませんので、お力添えのほどよろしくお願いいたします。
|
226
|
+
|
227
|
+
|
228
|
+
|
229
|
+
---
|
230
|
+
|
231
|
+
|
232
|
+
|
233
|
+
**<2021/1/16 13:15 追記>**
|
234
|
+
|
235
|
+
|
236
|
+
|
237
|
+
app.run()の直前でWSGIRequestHandlerでhttp1.1を指定した結果は下記のようになりました。[【参考コード】](https://stackoverflow.com/questions/10523879/how-to-make-flask-keep-ajax-http-connection-alive)
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
```python
|
242
|
+
|
243
|
+
WSGIRequestHandler.protocol_version = "HTTP/1.1"
|
244
|
+
|
245
|
+
```
|
246
|
+
|
247
|
+
レスポンスヘッダーを見ると、http/1.0からhttp1.1にはなったのですが、Connectionはcloseのままでした。
|
248
|
+
|
249
|
+
![http1.1を指定](4839894939d0351320c449f469cd1f81.png)
|
250
|
+
|
251
|
+
そして、データの欠落についてですが、まだ改善は見られておりません。
|
1
書式の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,28 +1,18 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
|
-
Python(flask)でブラウザでボタンを押したらサーバー側で処理を行い、結果をSSEでブラウザ側に表示するサイトを作っています。
|
3
|
+
Python(flask)でブラウザでボタンを押したらサーバー側で処理を行い、結果をSSEでブラウザ側に表示するサイトを作っています。しかし、ブラウザで表示されるログは、一部が欠落してスキップしてデータが表示されてしまい苦戦しております。(例:①〜⑩の処理を表示したいが、②の処理がブラウザ側では取得することができないことがときどき起こる)
|
4
|
-
|
5
|
-
しかし、ブラウザで表示されるログは、一部が欠落してスキップしてデータが表示されてしまい苦戦しております。
|
6
|
-
|
7
|
-
(例:①〜⑩の処理を表示したいが、②の処理がブラウザ側では取得することができないことがときどき起こる)
|
8
4
|
|
9
5
|
|
10
6
|
|
11
7
|
### 処理内容
|
12
8
|
|
13
|
-
ajaxでブラウザ側のボタンを押したらサーバー側で処理の結果をQueueモージュールにてデータを逐次入れていき、
|
9
|
+
ajaxでブラウザ側のボタンを押したらサーバー側で処理の結果をQueueモージュールにてデータを逐次入れていき、それをwhileの中でデータを取り出し、event-streamでブラウザ側に結果を表示しようと試みてますが、思ったように動作することができておりません。(サーバーの処理後ブラウザへ値を渡したいです)
|
14
|
-
|
15
|
-
それをwhileの中でデータを取り出し、event-streamでブラウザ側に結果を表示しようと試みてますが、
|
16
|
-
|
17
|
-
思ったように動作することができておりません。(サーバーの処理後ブラウザへ値を渡したいです)
|
18
10
|
|
19
11
|
|
20
12
|
|
21
13
|
### エラー画面・取得できない例
|
22
14
|
|
23
|
-
サーバー側のログを見てみると、①〜⑩の処理は取得できているのですが、ブラウザ側では②を取得することができてません。
|
24
|
-
|
25
|
-
ブラウザに上手く表示されないデータは、毎回固定ではなく、クリックするタイミングにもより変化してます。(全て正常に動作することもあります)
|
15
|
+
サーバー側のログを見てみると、①〜⑩の処理は取得できているのですが、ブラウザ側では②を取得することができてません。ブラウザに上手く表示されないデータは、毎回固定ではなく、クリックするタイミングにもより変化してます。(全て正常に動作することもあります)
|
26
16
|
|
27
17
|
|
28
18
|
|