revent 0.1 → 0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,63 @@
1
+ package {
2
+ import flash.display.Sprite;
3
+ import revent.Client;
4
+ import revent.CallEvent;
5
+
6
+ public class Document extends Sprite {
7
+ private static const CMD1:int = 0;
8
+ private static const CMD2:int = 1;
9
+
10
+ private var _client:Client;
11
+
12
+ public function Document():void {
13
+ _client = new Client();
14
+ _client.addEventListener(CallEvent.CONNECT, onConnect);
15
+ _client.addEventListener(CallEvent.CLOSE, onClose);
16
+ _client.addEventListener(CallEvent.IO_ERROR, onIOError);
17
+ _client.addEventListener(CallEvent.SECURITY_ERROR, onSecurityError);
18
+ _client.addEventListener(CallEvent.CALL, onCall);
19
+ _client.addEventListener(CallEvent.RESULT, onResult);
20
+ _client.addEventListener(CallEvent.ERROR, onError);
21
+ _client.connect("localhost", 1935);
22
+ }
23
+
24
+ // ---------------------------------------------------------------------------
25
+
26
+ private function onConnect(event:CallEvent):void {
27
+ for (var i:int; i < 3; i++) {
28
+ _client.call(CMD1, ["1", 23, null]);
29
+ _client.call(CMD2, 99);
30
+ }
31
+ }
32
+
33
+ private function onClose(event:CallEvent):void {
34
+ trace("onClose");
35
+ }
36
+
37
+ private function onIOError(event:CallEvent):void {
38
+ trace("onIOError");
39
+ }
40
+
41
+ private function onSecurityError(event:CallEvent):void {
42
+ trace("onSecurityError");
43
+ }
44
+
45
+ private function onCall(event:CallEvent):void {
46
+ trace("onCall");
47
+ trace(event.cmd);
48
+ trace(event.value);
49
+ }
50
+
51
+ private function onResult(event:CallEvent):void {
52
+ trace("onResult");
53
+ trace(event.cmd);
54
+ trace(event.value);
55
+ }
56
+
57
+ private function onError(event:CallEvent):void {
58
+ trace("onError");
59
+ trace(event.cmd);
60
+ trace(event.value);
61
+ }
62
+ }
63
+ }
Binary file
Binary file
@@ -0,0 +1,48 @@
1
+ require 'revent/as_r'
2
+
3
+ class Server
4
+ include Revent::ASRServer
5
+
6
+ CMD1 = 0
7
+ CMD2 = 1
8
+
9
+ def initialize(host, port)
10
+ start_server(host, port)
11
+ end
12
+
13
+ def on_connect(client)
14
+ puts "on_connect:"
15
+ puts client.remote_ip
16
+ end
17
+
18
+ def on_close(client)
19
+ puts "on_close:"
20
+ puts client.remote_ip
21
+ end
22
+
23
+ def on_call(client, cmd, value)
24
+ puts "on_call:"
25
+ puts client.remote_ip
26
+ puts cmd
27
+ puts value
28
+ [cmd, value]
29
+ end
30
+
31
+ def on_result(client, cmd, value)
32
+ puts "on_result:"
33
+ puts client.remote_ip
34
+ puts cmd
35
+ puts result
36
+ end
37
+
38
+ def on_error(client, cmd, value)
39
+ puts "on_error:"
40
+ puts client.remote_ip
41
+ puts cmd
42
+ puts error
43
+ end
44
+ end
45
+
46
+ EventMachine::run do
47
+ Server.new("localhost", 1935)
48
+ end
File without changes
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: revent
3
3
  version: !ruby/object:Gem::Version
4
- version: "0.1"
4
+ version: "0.2"
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ngoc DAO Thanh
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-02-04 00:00:00 +09:00
12
+ date: 2008-02-09 00:00:00 +09:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -23,11 +23,36 @@ extra_rdoc_files: []
23
23
 
24
24
  files:
25
25
  - test
26
- - sample
27
- - sample/client.rb
28
- - sample/server.rb
26
+ - test/as_r
27
+ - test/as_r/client.fla
28
+ - test/as_r/server.rb
29
+ - test/as_r/client.swf
30
+ - test/as_r/Document.as
31
+ - test/r_r
32
+ - test/r_r/client.rb
33
+ - test/r_r/server.rb
29
34
  - lib
30
- - lib/revent.rb
35
+ - lib/revent
36
+ - lib/revent/r_r.rb
37
+ - lib/revent/as_r.rb
38
+ - lib/revent/Client.as
39
+ - lib/revent/amf3
40
+ - lib/revent/amf3/app
41
+ - lib/revent/amf3/app/fault_object.rb
42
+ - lib/revent/amf3/app/configuration.rb
43
+ - lib/revent/amf3/LICENSE
44
+ - lib/revent/amf3/io
45
+ - lib/revent/amf3/io/amf_deserializer.rb
46
+ - lib/revent/amf3/io/read_write.rb
47
+ - lib/revent/amf3/io/amf_serializer.rb
48
+ - lib/revent/amf3/util
49
+ - lib/revent/amf3/util/vo_helper.rb
50
+ - lib/revent/amf3/util/string.rb
51
+ - lib/revent/amf3/README
52
+ - lib/revent/amf3/exception
53
+ - lib/revent/amf3/exception/rubyamf_exception.rb
54
+ - lib/revent/amf3/amf3.rb
55
+ - lib/revent/CallEvent.as
31
56
  - setup.rb
32
57
  - INSTALL
33
58
  - README
data/lib/revent.rb DELETED
@@ -1,166 +0,0 @@
1
- require 'rubygems'
2
- require 'eventmachine'
3
- require 'stringio'
4
-
5
- # Included by both ReventServer and ReventClient.
6
- module ReventCon
7
- attr_writer :me
8
- attr_accessor :property # Something that you want to associate with this connection
9
- attr_writer :cons # Only used for ReventServer
10
-
11
- def post_init
12
- @connected = true
13
- @data = ''
14
- end
15
-
16
- def receive_data(data)
17
- @data << data
18
-
19
- while true
20
- io = StringIO.new(@data)
21
- o = Marshal.load(io)
22
- @data.slice!(0, io.pos)
23
- process(o)
24
- end
25
- rescue
26
- end
27
-
28
- def process(o)
29
- case o[:type]
30
- when :call
31
- result = @cons.nil? ? @me.on_call(o[:cmd], o[:arg]) : @me.on_call(self, o[:cmd], o[:arg])
32
- o = {:type => :result, :cmd => o[:cmd], :result => result}
33
- send_data(Marshal.dump(o))
34
- when :result
35
- @cons.nil? ? @me.on_result(o[:cmd], o[:result]) : @me.on_result(self, o[:cmd], o[:result])
36
- when :error
37
- @cons.nil? ? @me.on_error(o[:cmd], o[:error]) : @me.on_error(self, o[:cmd], o[:error])
38
- end
39
- rescue => e
40
- o = {:type => :error, :cmd => o[:cmd], :error => e}
41
- send_data(Marshal.dump(o))
42
- end
43
-
44
- def unbind
45
- @connected = false
46
- if @cons.nil?
47
- @me.on_close
48
- else
49
- @me.on_close(self)
50
- @cons.delete(self)
51
- end
52
- end
53
-
54
- # ----------------------------------------------------------------------------
55
-
56
- def connected?
57
- @connected
58
- end
59
-
60
- # IP of the container
61
- def remote_ip
62
- a = get_peername[2,6].unpack("nC4")
63
- a.delete_at(0)
64
- a.join('.')
65
- end
66
-
67
- def call(cmd, arg)
68
- o = {:type => :call, :cmd => cmd, :arg => arg}
69
- send_data(Marshal.dump(o))
70
- end
71
-
72
- def close
73
- close_connection_after_writing
74
- end
75
- end
76
-
77
- # To make your class a server, just include ReventServer in it.
78
- module ReventServer
79
- def start_server(host, port)
80
- @revent_cons = []
81
- EventMachine::start_server(host, port, ReventCon) do |con|
82
- @revent_cons << con
83
- con.me = self
84
- con.cons = @revent_cons
85
- on_connect(con)
86
- end
87
- end
88
-
89
- # Utilities. You can call remote_ip, call, close directly on each "client", as
90
- # if it is an instance of ReventClient.
91
- # ----------------------------------------------------------------------------
92
-
93
- def clients
94
- @revent_cons
95
- end
96
-
97
- def on_connect(client)
98
- end
99
-
100
- # ----------------------------------------------------------------------------
101
-
102
- def on_connect(client)
103
- end
104
-
105
- def on_close(client)
106
- end
107
-
108
- def on_call(client, cmd, arg)
109
- end
110
-
111
- def on_result(client, cmd, result)
112
- end
113
-
114
- def on_error(client, cmd, error)
115
- end
116
- end
117
-
118
- # To make your class a client, just include ReventClient in it.
119
- module ReventClient
120
- def connect(host, port)
121
- EventMachine::connect(host, port, ReventCon) do |con|
122
- @revent_con = con
123
- con.me = self
124
- on_connect
125
- end
126
- end
127
-
128
- # Utilities ------------------------------------------------------------------
129
-
130
- def property
131
- @revent_con.property
132
- end
133
-
134
- def property=(value)
135
- @revent_con.property = value
136
- end
137
-
138
- def remote_ip
139
- @revent_con.remote_ip
140
- end
141
-
142
- def call(cmd, arg)
143
- @revent_con.call(cmd, arg)
144
- end
145
-
146
- def close
147
- @revent_con.close_connection_after_writing
148
- end
149
-
150
- # ----------------------------------------------------------------------------
151
-
152
- def on_connect
153
- end
154
-
155
- def on_close
156
- end
157
-
158
- def on_call(cmd, arg)
159
- end
160
-
161
- def on_result(cmd, result)
162
- end
163
-
164
- def on_error(cmd, error)
165
- end
166
- end