質問編集履歴

3

ヘッダーにkeep-aliveを追加したときのキャプチャを追加

2021/01/16 05:05

投稿

obon_t
obon_t

スコア52

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を試した結果を追加

2021/01/16 05:05

投稿

obon_t
obon_t

スコア52

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

書式の改善

2021/01/16 04:12

投稿

obon_t
obon_t

スコア52

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