rxio 0.13.3 → 0.13.4
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/README.md +14 -0
- data/lib/rxio/client.rb +3 -3
- data/lib/rxio/service.rb +16 -7
- data/lib/rxio/version.rb +1 -1
- 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: 62f06a50cce6b403b28c09502aba950ec863fd16
|
4
|
+
data.tar.gz: a7b84641ff2cde46908d8afc3e4c09d03f6e8c47
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 673842e6d6b54ba630e1bc0f9c6170c7aec543bf98ac171cf55821c22339a69ada60062b2c9dbbfa4a7486e31fb25ebd88eeed03e80e91bc3cd0a08832838d56
|
7
|
+
data.tar.gz: f661465b2dc21407b63c38068441d1e6148c064b4d15d5233488eb147d832b409e681e03d9b69ea772b17aecb6881432bea957670ee61c6530ba88d66b589c88
|
data/README.md
CHANGED
@@ -309,6 +309,20 @@ es.shutdown
|
|
309
309
|
puts 'Client has terminated!'
|
310
310
|
```
|
311
311
|
|
312
|
+
### Dealing with Client Errors
|
313
|
+
|
314
|
+
Whenever an error occurs as the result of handling a client's message should can be logged through the *client_error* method in *RxIO::Service*.
|
315
|
+
The default implementation of this method simply spits out the error on STDOUT and drops the client.
|
316
|
+
It can be overloaded to provide custom functionality upon client errors.
|
317
|
+
|
318
|
+
```ruby
|
319
|
+
# Default implementation for 'client_error'
|
320
|
+
def client_error c, e
|
321
|
+
puts "[!] ERROR [#{c[:peer][:addr]}:#{c[:peer][:name]}] - #{e}"
|
322
|
+
c[:sock].close rescue nil
|
323
|
+
end
|
324
|
+
```
|
325
|
+
|
312
326
|
## License
|
313
327
|
|
314
328
|
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
data/lib/rxio/client.rb
CHANGED
@@ -29,9 +29,9 @@ module RxIO
|
|
29
29
|
|
30
30
|
# Construct
|
31
31
|
# Builds a *Client* around a given _service_handler_ module, set to connect to _addr_ on _port_.
|
32
|
-
# @param [String] addr
|
33
|
-
# @param [Fixnum] port
|
34
|
-
# @param [Module] service_handler
|
32
|
+
# @param [String] addr Address to which the client should connect
|
33
|
+
# @param [Fixnum] port Port on which the client should connect
|
34
|
+
# @param [Module] service_handler Module implementing service client logic
|
35
35
|
def initialize addr, port, service_handler
|
36
36
|
|
37
37
|
# Set Address & Port
|
data/lib/rxio/service.rb
CHANGED
@@ -26,9 +26,9 @@ module RxIO
|
|
26
26
|
|
27
27
|
# Construct
|
28
28
|
# Builds a *Service* around a given _service_handler_ module, set to listen for incoming connections @ _addr_ on _port_.
|
29
|
-
# @param [String] addr
|
30
|
-
# @param [Fixnum] port
|
31
|
-
# @param [Module] service_handler
|
29
|
+
# @param [String] addr Address on which the service should listen
|
30
|
+
# @param [Fixnum] port Port on which the service should listen
|
31
|
+
# @param [Module] service_handler Module implementing the service logic
|
32
32
|
def initialize addr, port, service_handler
|
33
33
|
|
34
34
|
# Set Address & Port
|
@@ -107,7 +107,7 @@ module RxIO
|
|
107
107
|
# Register Client
|
108
108
|
# Creates a new Client around a given socket _s_ and registers it.
|
109
109
|
# Also, notifies the Handler Module if the _on_join_ method is available.
|
110
|
-
# @param [TCPSocket] s
|
110
|
+
# @param [TCPSocket] s The new client's network socket
|
111
111
|
def add_client s
|
112
112
|
|
113
113
|
# Register Socket
|
@@ -148,7 +148,7 @@ module RxIO
|
|
148
148
|
# Accept Socket
|
149
149
|
# Tries to accept any queued connection request in a non-blocking manner.
|
150
150
|
# Registers a new Client through _add_client_ around the newly-accepted socket if present.
|
151
|
-
# @param [TCPServer] s
|
151
|
+
# @param [TCPServer] s The service's listening socket
|
152
152
|
def acpt_sock s
|
153
153
|
|
154
154
|
# Accept
|
@@ -160,7 +160,7 @@ module RxIO
|
|
160
160
|
|
161
161
|
# Get Endpoint for Socket - Callback for IOBase
|
162
162
|
# Finds the Client associated with a given Socket
|
163
|
-
# @param [TCPSocket] s
|
163
|
+
# @param [TCPSocket] s Any socket
|
164
164
|
# @return [Hash] The Endpoint associated with Socket _s_, or nil
|
165
165
|
def get_endpoint_for_sock s
|
166
166
|
@cmap[s]
|
@@ -168,7 +168,7 @@ module RxIO
|
|
168
168
|
|
169
169
|
# On Drop - Callback for IOBase
|
170
170
|
# Unregisters a Client and closes the associated socket.
|
171
|
-
# @param [Hash] c
|
171
|
+
# @param [Hash] c Client Hash
|
172
172
|
def on_drop c
|
173
173
|
|
174
174
|
# Drop Client
|
@@ -179,5 +179,14 @@ module RxIO
|
|
179
179
|
# Kill Socket
|
180
180
|
c[:sock].close rescue nil
|
181
181
|
end
|
182
|
+
|
183
|
+
# Client Error
|
184
|
+
# Handles an Error from a Client
|
185
|
+
# @param [Hash] c Client Hash
|
186
|
+
# @param [String] e Error String
|
187
|
+
def client_error c, e
|
188
|
+
puts "[!] ERROR [#{c[:peer][:addr]}:#{c[:peer][:name]}] - #{e}"
|
189
|
+
c[:sock].close rescue nil
|
190
|
+
end
|
182
191
|
end
|
183
192
|
end
|
data/lib/rxio/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rxio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.13.
|
4
|
+
version: 0.13.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eresse
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-02-
|
11
|
+
date: 2017-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|