質問編集履歴

5

asyncioに関する記載を追加

2020/10/12 23:45

投稿

shirasublue
shirasublue

スコア19

test CHANGED
File without changes
test CHANGED
@@ -9,6 +9,10 @@
9
9
 
10
10
 
11
11
  ## 実現したいこと
12
+
13
+
14
+
15
+ websocketsライブラリにおいて、asyncioを隠蔽したいです。
12
16
 
13
17
 
14
18
 
@@ -34,9 +38,13 @@
34
38
 
35
39
  ```
36
40
 
41
+ - 記載変更3 実際には自作のライブラリに入ります。
42
+
43
+ ライブラリ使用者からasyncioを隠蔽するのが目的です。
37
44
 
38
45
 
46
+
39
- ## コード
47
+ ## 現状参考コード
40
48
 
41
49
 
42
50
 

4

ライブラリ websockets の記述を追加

2020/10/12 23:45

投稿

shirasublue
shirasublue

スコア19

test CHANGED
@@ -1 +1 @@
1
- websocketsで取得したメッセージをforに入れたい
1
+ websocketsで取得したメッセージをforで表示したい
test CHANGED
@@ -3,6 +3,8 @@
3
3
 
4
4
 
5
5
  - Python 3.8.2
6
+
7
+ - websockets 8.1
6
8
 
7
9
 
8
10
 

3

タイトルの変更

2020/10/06 04:40

投稿

shirasublue
shirasublue

スコア19

test CHANGED
@@ -1 +1 @@
1
- run_forever中のasync関数の値loop実行中関数の呼び元のforに入れたい
1
+ websocketsで取得したメッセージをforに入れたい
test CHANGED
File without changes

2

必要仕様追加

2020/10/06 04:37

投稿

shirasublue
shirasublue

スコア19

test CHANGED
File without changes
test CHANGED
@@ -19,6 +19,18 @@
19
19
 
20
20
 
21
21
  - 記載変更1 websockets を利用する場合、最初のコードでは全く意味がないと思われたので現時点でのコードを追加しました。
22
+
23
+
24
+
25
+ - 記載変更2 最低限守りたいコードが以下です。
26
+
27
+ ```
28
+
29
+ for msg in Hoge:
30
+
31
+ print(msg)
32
+
33
+ ```
22
34
 
23
35
 
24
36
 

1

websockets が記載されたサンプルに変更

2020/10/06 04:23

投稿

shirasublue
shirasublue

スコア19

test CHANGED
File without changes
test CHANGED
@@ -10,15 +10,87 @@
10
10
 
11
11
 
12
12
 
13
- 以下コードの for で`'piyo'`を表示したいです。
13
+ 以下コードの for で~~`'piyo'`~~受信メッセージを表示したいです。
14
14
 
15
- 実際にはwebsocketでの受信を逐次表示するような用途で使用したいです。
15
+ ~~実際にはwebsocketでの受信を逐次表示するような用途で使用したいです。
16
16
 
17
- `hogera()`より上は、実際にはライブラリ内に入るイメージです。
17
+ `hogera()`より上は、実際にはライブラリ内に入るイメージです。~~
18
+
19
+
20
+
21
+ - 記載変更1 websockets を利用する場合、最初のコードでは全く意味がないと思われたので現時点でのコードを追加しました。
18
22
 
19
23
 
20
24
 
21
25
  ## コード
26
+
27
+
28
+
29
+ ```python3
30
+
31
+ import websockets
32
+
33
+ import asyncio
34
+
35
+ import json
36
+
37
+
38
+
39
+ class Hoge(object):
40
+
41
+ async def stream(self):
42
+
43
+ async with websockets.connect(self.uri) as ws:
44
+
45
+ while not ws.closed:
46
+
47
+ response = await ws.recv()
48
+
49
+ self.message = json.loads(response)
50
+
51
+
52
+
53
+ def __init__(self):
54
+
55
+ self.message = None
56
+
57
+
58
+
59
+ def __iter__(self):
60
+
61
+ return self
62
+
63
+
64
+
65
+ def __next__(self):
66
+
67
+ return self.message
68
+
69
+
70
+
71
+ ''' いずこへ…
72
+
73
+ loop = asyncio.get_event_loop()
74
+
75
+ loop.create_task(self.stream())
76
+
77
+ loop.run_forever()
78
+
79
+ '''
80
+
81
+
82
+
83
+ for msg in Hoge:
84
+
85
+ print(msg)
86
+
87
+ ```
88
+
89
+
90
+
91
+
92
+
93
+ ### 最初に投稿したコード
22
94
 
23
95
 
24
96