opal-drb 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/opal/drb/drb_server.rb +6 -4
- data/lib/opal/drb/version.rb +1 -1
- data/lib/opal/drb/websocket.rb +14 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b15bcbd00eb42ad9a6e0bbd97eff77a0cf839d67
|
4
|
+
data.tar.gz: 1e1c07dddf6707a8f1aee7d102b90a091918a027
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fbae91fd2584a7d00a86b888ef1066e66cd170108d5ef10cdeb3ff87cb37f6bf40a2a38927e57bfb023cfe34a7162cc64cdf395b5ddc058c88f7cb7dca0b1eac
|
7
|
+
data.tar.gz: faffca7fce4a793ea4a1109cf1dadb582d5332345113f5612917c12d14e0653fd4afbd4a754258fdefb38b51a15d2d05545862dfcab775ff361d3912a216252a
|
data/lib/opal/drb/drb_server.rb
CHANGED
@@ -1,15 +1,17 @@
|
|
1
1
|
module DRb
|
2
2
|
class DRbServer
|
3
|
-
attr_reader :uri
|
4
|
-
|
5
3
|
def initialize(uri)
|
6
|
-
@
|
7
|
-
@protocol = DRbProtocol.open_server(@uri)
|
4
|
+
@protocol = DRbProtocol.open_server(uri)
|
8
5
|
run
|
9
6
|
end
|
10
7
|
|
8
|
+
def uri
|
9
|
+
@protocol.uri
|
10
|
+
end
|
11
|
+
|
11
12
|
def run
|
12
13
|
@protocol.accept do |client|
|
14
|
+
run
|
13
15
|
begin
|
14
16
|
succ = false
|
15
17
|
invoke_method = InvokeMethod.new(self, client)
|
data/lib/opal/drb/version.rb
CHANGED
data/lib/opal/drb/websocket.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'native'
|
2
2
|
require 'promise'
|
3
|
+
require 'securerandom'
|
3
4
|
|
4
5
|
class ArrayBuffer
|
5
6
|
include Native
|
@@ -29,11 +30,15 @@ class WebSocket
|
|
29
30
|
end
|
30
31
|
|
31
32
|
def onmessage
|
32
|
-
add_event_listener('message') {|event| yield MessageEvent.new(event) }
|
33
|
+
add_event_listener('message') {|event| yield MessageEvent.new(event) if self.open? }
|
33
34
|
end
|
34
35
|
|
35
36
|
def onopen
|
36
|
-
add_event_listener('open') {|event| yield MessageEvent.new(event) }
|
37
|
+
add_event_listener('open') {|event| yield MessageEvent.new(event) if self.open? }
|
38
|
+
end
|
39
|
+
|
40
|
+
def open?
|
41
|
+
`self.native.readyState == 1`
|
37
42
|
end
|
38
43
|
|
39
44
|
alias_native :close
|
@@ -87,6 +92,7 @@ module DRb
|
|
87
92
|
raise(DRbBadScheme, uri) unless uri =~ /^ws:/
|
88
93
|
raise(DRbBadURI, 'can\'t parse uri:' + uri)
|
89
94
|
end
|
95
|
+
|
90
96
|
Server.new(uri, config)
|
91
97
|
end
|
92
98
|
|
@@ -94,17 +100,16 @@ module DRb
|
|
94
100
|
attr_reader :uri
|
95
101
|
|
96
102
|
def initialize(uri, config)
|
97
|
-
@uri = uri
|
103
|
+
@uri = "#{uri}/#{SecureRandom.uuid}"
|
98
104
|
@config = config
|
99
105
|
end
|
100
106
|
|
101
107
|
def close
|
102
|
-
|
103
|
-
RackApp.close("#{u.host}:#{u.port}")
|
108
|
+
@ws.close
|
104
109
|
end
|
105
110
|
|
106
111
|
def accept
|
107
|
-
ws = ::WebSocket.new(uri)
|
112
|
+
ws = ::WebSocket.new(@uri)
|
108
113
|
ws.onmessage do |event|
|
109
114
|
stream = StrStream.new(event.data.to_s)
|
110
115
|
server_side = ServerSide.new(stream, @config, uri)
|
@@ -189,11 +194,14 @@ module DRb
|
|
189
194
|
end
|
190
195
|
|
191
196
|
promise.resolve reply_stream
|
197
|
+
|
198
|
+
@ws.close
|
192
199
|
end
|
193
200
|
|
194
201
|
@ws.onopen do
|
195
202
|
@ws.send(`new Uint8Array(#{data.bytes.each_slice(2).map(&:first)}).buffer`)
|
196
203
|
end
|
204
|
+
|
197
205
|
promise
|
198
206
|
end
|
199
207
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opal-drb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- youchan
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-09-
|
11
|
+
date: 2017-09-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opal
|