- ユーザによりサーバーになるかクライアントになるかの選択ボタンのようなものを用意する
- サーバー側となったスクリプトでサーバーオブジェクトを生成しFRONTにする
- このときサーバー側のShoesアプリを渡し、配列などで管理する
- クライアント側が選択されるとFRONTを受け取ると共にクライアント側のShoesアプリをサーバーオブジェクトに登録されるようにし、上の配列で管理する
- 同期を取りたい任意のアクションを配列で管理されている各アプリに渡す
1 require "drb/drb"
2
3 class TimeServer
4 # include DRbUndumped
5 attr_accessor :color
6 def initialize
7 @color = :black
8 end
9
10 def get_current_time
11 "#{Time.now.ctime}"
12 end
13 end
14
15 Shoes.app :width => 400, :height => 400 do
16 $SAFE = 1
17 URI = "druby://localhost:8787"
18 FRONT = TimeServer.new
19 DRb.start_service(URI, FRONT)
20
21 @timer = stack do
22 animate 8 do
23 @timer.clear do
24 para FRONT.get_current_time
25 para FRONT.color
26 end
27 end
28 end
29 stack do
30 button "Green!" do
31 FRONT.color = :green
32 end
33 end
34
35 end
1 require "drb/drb"
2
3
4 Shoes.app :width => 400, :height => 400 do
5 URI = "druby://localhost:8787"
6 DRb.start_service
7 FRONT = DRbObject.new_with_uri(URI)
8
9 @timer = stack do
10 animate 8 do
11 @timer.clear do
12 para FRONT.get_current_time
13 para FRONT.color
14 end
15 end
16 end
17 stack do
18 button "Red!" do
19 FRONT.color = :red
20 end
21 end
22 end
No comments:
Post a Comment