teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

chokidarについて記述

2017/11/09 10:56

投稿

kishi_kun
kishi_kun

スコア26

title CHANGED
File without changes
body CHANGED
@@ -71,6 +71,8 @@
71
71
  しかしLast few GCsが起こるようになってしまいました。
72
72
  以下の書き方は正しかったのでしょうか。
73
73
  ```
74
+ var chokidar = require('chokidar')
75
+ var watcher = chokidar.watch
74
76
  ///
75
77
  sockets.on('connection', function(socket) {
76
78
  clients[socket.id] = socket;

2

コメントに応じて追記

2017/11/09 10:56

投稿

kishi_kun
kishi_kun

スコア26

title CHANGED
File without changes
body CHANGED
@@ -32,7 +32,7 @@
32
32
  ///
33
33
  ```
34
34
 
35
- ###追記
35
+ ###追記
36
36
  下記のようにソースを書きなおしましたが
37
37
  3回ブラウザを更新すると、4回分上記のイベントが発行されているような挙動は変わらず
38
38
  コンソールへの出力もコメント1とコメント2で同様のIDが出力されています。
@@ -46,6 +46,15 @@
46
46
  sockets.on('connection', function(socket) {
47
47
  clients[socket.id] = socket;
48
48
  ///
49
+ watcher.on('add'function(**){
50
+ try{
51
+ while(socket.connected){
52
+ io.json.to(socket.id).emit(~~~);
53
+ }
54
+ catch(e){
55
+ }
56
+ )};
57
+ ///
49
58
 
50
59
  socket.on('disconnect', function() {
51
60
  conlose.log([socket.id]);  //コメント1
@@ -54,4 +63,25 @@
54
63
  });
55
64
  });
56
65
  ///
66
+ ```
67
+
68
+
69
+ ###追記2
70
+ 下記のようにソースを書きなおしました
71
+ しかしLast few GCsが起こるようになってしまいました。
72
+ 以下の書き方は正しかったのでしょうか。
73
+ ```
74
+ ///
75
+ sockets.on('connection', function(socket) {
76
+ clients[socket.id] = socket;
77
+ ///
78
+ watcher.on('add'function(**){
79
+ try{
80
+ while(socket.connected){
81
+ io.json.to(socket.id).emit(~~~);
82
+ }
83
+ catch(e){
84
+ }
85
+ )};
86
+ //
57
87
  ```

1

頂いた回答を元に修正

2017/10/29 16:19

投稿

kishi_kun
kishi_kun

スコア26

title CHANGED
@@ -1,1 +1,1 @@
1
- クライアントが切断されたらsocket.idを廃棄する方法について
1
+ Node.js及びsocket.ioにおいて、切断されたクライアントsocket.idを廃棄する方法について
body CHANGED
@@ -30,4 +30,28 @@
30
30
  delete socket.id;
31
31
  }
32
32
  ///
33
+ ```
34
+
35
+ ###追記1
36
+ 下記のようにソースを書きなおしましたが
37
+ 3回ブラウザを更新すると、4回分上記のイベントが発行されているような挙動は変わらず
38
+ コンソールへの出力もコメント1とコメント2で同様のIDが出力されています。
39
+
40
+
41
+ ```
42
+ ///
43
+ let clients = {};
44
+ ///
45
+
46
+ sockets.on('connection', function(socket) {
47
+ clients[socket.id] = socket;
48
+ ///
49
+
50
+ socket.on('disconnect', function() {
51
+ conlose.log([socket.id]);  //コメント1
52
+ delete clients[socket.id];
53
+ console.log([socket.id]); //コメント2
54
+ });
55
+ });
56
+ ///
33
57
  ```