質問編集履歴

4

頂いた回答を元に修正

2017/12/20 11:38

投稿

kishi_kun
kishi_kun

スコア26

test CHANGED
File without changes
test CHANGED
@@ -206,6 +206,46 @@
206
206
 
207
207
 
208
208
 
209
+ ###試したこと3
210
+
211
+ 回答頂いた様に下記の様に実装致しました。
212
+
213
+
214
+
215
+ ```
216
+
217
+ socket.on('disconnect',(reason)=>{
218
+
219
+ //delete clients;
220
+
221
+ console.log(socket.id)
222
+
223
+ delete clients[socket.id];
224
+
225
+ console.log(socket.id+'_disconnected')
226
+
227
+ });
228
+
229
+ ```
230
+
231
+ しかし、上記の部分の出力は以下のように、プロパティが消えず
232
+
233
+ 更新しても今まで接続された分出力されてしまいます。
234
+
235
+
236
+
237
+ ```
238
+
239
+ [Time] (socket.id1)
240
+
241
+ [Time] (socket.id1_disconnected)
242
+
243
+
244
+
245
+ ```
246
+
247
+
248
+
209
249
 
210
250
 
211
251
  マルチポスト

3

出力を記述

2017/12/20 11:38

投稿

kishi_kun
kishi_kun

スコア26

test CHANGED
File without changes
test CHANGED
@@ -74,6 +74,8 @@
74
74
 
75
75
  clients[socket.id]= socket;
76
76
 
77
+ console.log(socket.id+'connected')
78
+
77
79
  watcher.on('add',function(path){
78
80
 
79
81
    ///fsでファイルを読む処理をしています。
@@ -84,6 +86,8 @@
84
86
 
85
87
  socket.on('命令1',function(data){
86
88
 
89
+ console.log(socket.id)
90
+
87
91
  console.log('命令1が来た')
88
92
 
89
93
    ///fsでファイルを消しています。
@@ -94,11 +98,51 @@
94
98
 
95
99
  delete clients;
96
100
 
101
+ console.log(socket.id+'disconnected')
102
+
97
- });
103
+ });
98
-
104
+
99
- });
105
+ });
100
-
106
+
101
- ```
107
+ ```
108
+
109
+ ###出力
110
+
111
+ 例えば3回更新した時はこのように出力されます。
112
+
113
+ ```
114
+
115
+ [Time] (socket.id1) connected
116
+
117
+ [Time] (socket.id1) disconnected
118
+
119
+ [Time] (socket.id2) connected
120
+
121
+ [Time] (socket.id2) disconnected
122
+
123
+ [Time] (socket.id3) connected
124
+
125
+ ```
126
+
127
+ この時にemitさせるとこのように出力されます
128
+
129
+ ```
130
+
131
+ [Time] (socket.id1)
132
+
133
+ [Time] 命令1が来た
134
+
135
+ [Time] (socket.id2)
136
+
137
+ [Time] 命令1が来た
138
+
139
+ [Time] (socket.id3)
140
+
141
+ [Time] 命令1が来た
142
+
143
+ ```
144
+
145
+
102
146
 
103
147
  ###試したこと
104
148
 

2

追記した

2017/12/13 22:23

投稿

kishi_kun
kishi_kun

スコア26

test CHANGED
@@ -1 +1 @@
1
- Socket.IOのクライアント切断しても接続が残ってしまう
1
+ Socket.IOのクライアント切断しても、今まで接続されていた分イベント飛ぶ
test CHANGED
@@ -126,6 +126,42 @@
126
126
 
127
127
  ```
128
128
 
129
+ ###試したこと2
130
+
131
+ 実際接続されているクライアントはどれだけあるかを確認するため、
132
+
133
+ 以下の様にコードを変更し、確認しました。
134
+
135
+ ```
136
+
137
+ io.on('connection',(socket)=>{
138
+
139
+ var info = io.sockets.client();
140
+
141
+ var count = Oblect.keys(info.connected).length
142
+
143
+ console.log(info); //出力1
144
+
145
+ console.log(count); //出力2
146
+
147
+ clients[socket.id]= socket;
148
+
149
+ watcher.on('add',function(path){
150
+
151
+ ・・・
152
+
153
+ ```
154
+
155
+ 結果としては出力1,2どちらも接続されている分しか出ませんでした。
156
+
157
+ 例)2ブラウザで接続した際は、出力は2と出力
158
+
159
+ しかし、イベントを発火させた際、命令1が来たといった出力は変わらず今まで接続されていた
160
+
161
+ 分出力されてしまいます。
162
+
163
+
164
+
129
165
 
130
166
 
131
167
  マルチポスト

1

マルチポストを明記

2017/12/13 13:01

投稿

kishi_kun
kishi_kun

スコア26

test CHANGED
File without changes
test CHANGED
@@ -125,3 +125,9 @@
125
125
 
126
126
 
127
127
  ```
128
+
129
+
130
+
131
+ マルチポスト
132
+
133
+ [Stack over flow](https://ja.stackoverflow.com/questions/40169/socket-io%e3%81%a7%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e3%82%92%e5%88%87%e6%96%ad%e3%81%97%e3%81%a6%e3%82%82%e6%8e%a5%e7%b6%9a%e3%81%8c%e5%88%87%e3%82%8c%e3%81%be%e3%81%9b%e3%82%93)