Mercurial > hg > Applications > TreeVNC
annotate Todo.txt @ 209:7b106b4a0c9f
update Todo
author | oc |
---|---|
date | Wed, 02 Jul 2014 19:06:03 +0900 |
parents | 614db20d8fab |
children | 1badb2ce838f |
rev | line source |
---|---|
209 | 1 Wed Jul 2 18:55:48 JST 2014 |
2 | |
3 TreeRFBProtoのisTreeManagerはnetwork毎に変わる。 | |
4 | |
5 clientが立ち上がったときにinterface address毎にTreeManagerを作成する。 | |
6 findRootして、既にTreeManagerがいたら、TreeManagerのisTreeManagerフラグを落とす。 | |
7 TreeManagerフラグがたっているinterfaceにたいしてはinterface rootとして振る舞う。 | |
8 findRootに答える。 | |
9 newClientとwhereToConnect、lostParentに応答する。 | |
10 真のrootはTreeRfb.isRootで判断する。 | |
11 | |
12 newClientが来たら、newClientのnetwork addressをみて、同じネットワークかどうかを判断する。 | |
13 同じネットワークにいる場合は、tree nodeとして扱う。 | |
14 ネットワークが異なる場合は、順々にtree nodeの下につける。 | |
15 | |
16 FindRootへの応答は、自分がTreeManagerである場合。 | |
17 応答を願ったnetwork addressからTreeManagerを検索して、それが合致し、TreeManagerであった場合に応答する。 | |
18 | |
19 | |
196 | 20 Fri Jun 27 15:19:39 JST 2014 |
198 | 21 |
205
614db20d8fab
try to separate Network management
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
198
diff
changeset
|
22 拡大縮小ボタンのバグを取る。Done! |
196 | 23 |
209 | 24 Multi-Network-Treeの作成 done! |
25 socketからNetMaskを検出 done! | |
196 | 26 NetworkごとにTreeManagerを作成 |
27 複数のNetworkをもつNodeでは新しいNewtworkにTreeManagerを作成 | |
28 FindRootにはTreeMangerが応答する | |
29 下位のNodeのChangeVnCServerはそのTreeManagerが処理する | |
30 上位にHostameがからのChangerVnCserverを投げる | |
205
614db20d8fab
try to separate Network management
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
198
diff
changeset
|
31 UpdateRectanleを上位のNetworkに投げる |
196 | 32 RootではUpdateRectangleを送り返す |
33 | |
205
614db20d8fab
try to separate Network management
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
198
diff
changeset
|
34 myRfbProtoのselectPort()でnetworkinterfaceを検出する |
614db20d8fab
try to separate Network management
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
198
diff
changeset
|
35 myRfbProtoのvncConnected()でvnc port の interface と Network を検出する |
614db20d8fab
try to separate Network management
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
198
diff
changeset
|
36 |
614db20d8fab
try to separate Network management
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
198
diff
changeset
|
37 自分が、そのnetworkのrootになる条件は? |
614db20d8fab
try to separate Network management
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
198
diff
changeset
|
38 |
196 | 39 treeManagerをnetworkのhashmapで持つ。 |
40 setTreeManagerにnetworkの引数を追加する | |
41 | |
42 findRootで重複したrootを見つけたときに、 | |
43 一番小さいアドレスだけをrootにする。 | |
44 それ以外には、duplicated rootを送る。 | |
197 | 45 この際、duplicated rootを送られたrootは生かしておくが、 |
46 find rootへの応答はやめる。 | |
47 lostParentがきたら、find rootへの応答を再開する。 | |
48 この際、生かしておくduplicated rootは二つに限る。 | |
196 | 49 |
50 findRootReplyにはVNCServerのhostとportを含める。 | |
51 両方共nullだった場合は両方別のものとして表示する。 | |
52 異なるVNCServerはduplicate扱いしない。 | |
53 | |
54 duplicate root を受け取ったrootは、 | |
55 rootであることをやめて、自分の子供にrequestWhereToConnectを送信する。 | |
56 | |
57 requestWhereToConnectを受け取ったnodeは | |
58 whererToConnectを再度送信する。 | |
197 | 59 |
60 中間rootが死んだときには | |
61 下位のnodeはduplicated rootにつなげ直す。 | |
62 もしduplicatedListになかったら、あきらめる。 | |
63 | |
205
614db20d8fab
try to separate Network management
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
198
diff
changeset
|
64 TreeManager は interface 別に作る Done! |
614db20d8fab
try to separate Network management
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
198
diff
changeset
|
65 Network address が LAN 外なら、その下に node は作らない。( そちらで勝手に作るのはあり ) |
614db20d8fab
try to separate Network management
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
198
diff
changeset
|
66 |
196 | 67 |
193 | 68 Thu Jun 25 20:55:00 JST 2014 |
69 | |
70 share screenした際に、rootのviewerが消えない。 | |
71 殺しきれていないThreadがある。 | |
72 | |
73 | |
165 | 74 Thu Jun 19 08:12:02 JST 2014 |
166 | 75 |
169 | 76 Share Button を押した際に、JFrameのTitleを更新する。 Done |
166 | 77 SwingViewerWindow.javaのsetRemoteDesktopName メソッドを呼べば解決するはず。 |
78 | |
167 | 79 サーバが切り替わった際、画面のサイズ等の情報を送信する。(INIT_DATA) Done |
166 | 80 |
81 -dオプションでviewerを別にあげるのをやめる。 | |
82 2つめのviewerの表示が滞るのをデバッグする | |
83 shareボタンを禁止するrootのオプションを、パネルから設定出来るように。 | |
84 shareしたTreeVNCのパネルをinvisibleにする。 | |
85 shareする画面の大きさをHDサイズに限定するのをdefaultにする。 | |
86 fullサイズを転送するオプションに。 | |
169 | 87 checkdelayの機能を。 |
166 | 88 |
165 | 89 |
153 | 90 Fri Jun 13 17:29:02 JST 2014 |
91 | |
92 AcceptThreadをMultiThread化する。(deadlockを防ぐため) | |
93 TreeNodeが死んだときに、最後のNodeをそこに置き換える。 | |
156 | 94 clientをつなげたときにscreen sharingするバグを直す。 |
95 無線LAN等の複数のネットワークを使えるようにする。 | |
96 無線LAN同士でtreeを構成しないようにパターンマッチをする。 | |
153 | 97 |
133 | 98 Sat Jun 7 11:47:56 JST 2014 |
123 | 99 |
100 Multicast で root を探す (FIND_ROOT) | |
101 その時に、自分の proxy port/host を付けておく | |
102 root は、それを client address/port として覚えておく (clients) | |
103 root は、そこに接続に来て、「自分のproxy port」を返す。(FIND_ROOT_REPLY) | |
104 これを check box に登録する | |
105 client は、それを選択して、root の proxy port に接続に行く (WHERE_TO_CONNECT) | |
106 そこから、root は、どこに接続に行くかを教えてくれる (CONNECT_TO) | |
107 今度は、そこにclientとして接続する (VERSION_MESSAGE ) | |
108 | |
133 | 109 FIND_ROOT (client multicast ) : int port; String hostname (client's address) |
110 | |
123 | 111 proxy port への接続では、client は自分から書かずに server からの version message を待つ |
112 普通のVNCは cliet からは VERSION_MESSAGE が行くが、Tree VNC では、 | |
113 | |
133 | 114 FIND_ROOT_REPLY (root to client proxy port) : int port; String hostname (root's address) |
115 WHERE_TO_CONNECT (clinet to root proxy port) : int port; String hostname (client's address) | |
116 CONNECT_TO (root to client ) : int port; String parentAddress (parent's address) | |
117 CONNECT_TO_AS_LEADER (root to client ) : int port; String parentAddress (parent's address) | |
123 | 118 |
119 が来ることになる。 | |
120 | |
121 切断時は、子供のleaderが root のproxy port に聞きに行く | |
122 | |
133 | 123 LOST_PARENT (client to root) : int port; String hostname |
123 | 124 |
125 root は、接続変更が必要な node の proxy に CONNECT_TO を送る (木経由では送れない。切断されているので) | |
126 | |
127 最終的な切断時では、 LOST_PARENT が大量に出てしまうはず。なので、CONNECT_TO は連続しては送らない。 | |
128 | |
133 | 129 reportLastNode は CONNECT_TO で良い。(10001 port) |
130 lostNodeConnection でも CONNECT_TO を使う | |
131 | |
132 LOST_PARENT と PARENT_NOT_FOUND の違いはなんだ? LOST_PARENT は leader が出すようだけど。 | |
133 | |
134 CONNECT_TO で parentNum とか treeNum を送る必要はない。root 内部で接続アドレスから判断する。 | |
135 なので、LOST_PARENT は hostname と port だけでよい。 | |
136 | |
109 | 137 Fri May 23 19:32:24 JST 2014 |
114 | 138 |
139 checkdelay を再実装する | |
140 | |
141 reconnect message が port 10001 を使っているが、これでは複数clientをホストで動かした時に動かない。 | |
142 どのportを使うかをrootに教える必要がある。 | |
109 | 143 |
123 | 144 9999も使われているようだ。 |
145 | |
146 普通にclientに接続に行けば、version handshake からスタートするはず。そこに、reconnection プロトコルを | |
147 挟める。MyRfbProto.readVersionMsg()。 | |
148 | |
149 Recconection は | |
150 root は AcceptClient | |
151 client は EchoClient | |
152 で行われている(らしい)。まず、この名前をまともなものにする。 | |
153 | |
154 reconnection は木の最後のノードを穴の空いたところに接続することで行われる。これは、逐次で行う必要がある。 | |
155 最後には、ほとんどは一斉に切断されるので、そこで破綻しないように注意する。 | |
156 | |
157 root が client のノードとportを持っているかどうかが重要だが。 | |
158 | |
109 | 159 |
100 | 160 Thu May 22 21:20:39 JST 2014 |
161 | |
162 1) zlibの同期が外れてる。 | |
105 | 163 VncProxyService.javaのinhelitClients の中で |
164 resetDecoderを呼び出せばいいが.... | |
165 2) DesktopSize ではなく、同じプロトコルで initData を送る方が良い。 | |
166 2) initData の中の名前を見て、自分だったら、shareしたclientのscreenをhideする。 | |
167 | |
100 | 168 |
96 | 169 Wed May 22 16:14:25 JST 2014 |
170 | |
100 | 171 1) 10001, 10002 における固定Portをなくす |
172 2) 木を上に登る通信 | |
173 3) ClientをCloseしないでresizeする | |
174 | |
175 Update rectangle で desktop size を変更可能 | |
101 | 176 このままで、pixel formatが変更されない |
177 なのでserverInit をもう一度送るのがよいのではないか | |
96 | 178 |
100 | 179 4) display modeでClient view(proxy + view)をあげる |
96 | 180 |
22 | 181 Wed Aug 29 23:32:36 JST 2012 |
182 | |
183 ReceiverTask の framebufferUpdateMessage を、TreeTask に再現しないとだめ。 | |
184 | |
20
98519d16a8c3
getInitData from ProtocolContext
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
185 Wed Aug 29 22:27:25 JST 2012 |
98519d16a8c3
getInitData from ProtocolContext
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
186 |
98519d16a8c3
getInitData from ProtocolContext
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
187 MyRfbProxy の os が初期化されていない (削除する方が良い) |
98519d16a8c3
getInitData from ProtocolContext
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
188 |
98519d16a8c3
getInitData from ProtocolContext
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
189 initData が null ( 設定された時に、設定するべき) |
98519d16a8c3
getInitData from ProtocolContext
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
190 |
98519d16a8c3
getInitData from ProtocolContext
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
191 |