sockeye-client 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +23 -1
- data/lib/sockeye/client.rb +22 -17
- data/sockeye-client.gemspec +1 -2
- metadata +3 -4
- data/lib/sockeye/client/version.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5c99d3e071afcea42497129c3f5b75b1646d0de3
|
4
|
+
data.tar.gz: 417d2cd068b7da62e45de1400ab9c5c94c4bd00c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc4cea9e02fe51a81cc3ad51eb16dacb3b5389e393b69ce19daad2256f5b182cab02b4d2d0ee810325c4aa1aff3f1b417e3ad71a4efb0c03a8252cbf0058f762
|
7
|
+
data.tar.gz: 60c823c83fad0fc70202ae2f3c9eeae44888ed6634aba4ee7837bc5d863e1fda1d957de490851c9ff733dde2e685de353b97ac486413de09e8b5ea0c549d0b4c
|
data/README.md
CHANGED
@@ -20,7 +20,29 @@ Or install it yourself as:
|
|
20
20
|
|
21
21
|
## Usage
|
22
22
|
|
23
|
-
|
23
|
+
```ruby
|
24
|
+
def on_message(message)
|
25
|
+
puts "message:"
|
26
|
+
puts message.inspect
|
27
|
+
end
|
28
|
+
|
29
|
+
def on_error(code)
|
30
|
+
puts "error:"
|
31
|
+
puts code.inspect
|
32
|
+
end
|
33
|
+
|
34
|
+
def on_close
|
35
|
+
puts "closed"
|
36
|
+
end
|
37
|
+
|
38
|
+
Sockeye::Client.new(
|
39
|
+
server_address: "ws://sockeye.local:8443",
|
40
|
+
auth_token: "THIS USER'S AUTH TOKEN",
|
41
|
+
on_message: Proc.new {|message| on_message(message)},
|
42
|
+
on_error: Proc.new {|code| on_error(code)},
|
43
|
+
on_close: Proc.new {on_close}
|
44
|
+
).connect
|
45
|
+
```
|
24
46
|
|
25
47
|
## Development
|
26
48
|
|
data/lib/sockeye/client.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require "sockeye/client/version"
|
2
1
|
require 'json'
|
3
2
|
require 'websocket-eventmachine-client'
|
4
3
|
|
@@ -7,49 +6,55 @@ module Sockeye
|
|
7
6
|
|
8
7
|
attr_accessor :server_address, :auth_token, :on_message, :on_error, :on_close
|
9
8
|
|
10
|
-
def initialize(server_address:, auth_token:, on_message
|
9
|
+
def initialize(server_address:, auth_token:, on_message: nil, on_error: nil, on_close: nil)
|
11
10
|
self.server_address = server_address
|
12
|
-
self.auth_token
|
13
|
-
self.on_message
|
14
|
-
self.on_error
|
15
|
-
self.on_close
|
11
|
+
self.auth_token = auth_token
|
12
|
+
self.on_message = on_message || Proc.new { |payload| nil }
|
13
|
+
self.on_error = on_error || Proc.new { |payload| nil }
|
14
|
+
self.on_close = on_close || Proc.new { nil }
|
15
|
+
end
|
16
|
+
|
17
|
+
@raw_socket = nil
|
18
|
+
|
19
|
+
def close
|
20
|
+
@raw_socket.close
|
21
|
+
EM.stop
|
16
22
|
end
|
17
23
|
|
18
24
|
def connect
|
19
25
|
|
20
26
|
EM.run do
|
21
27
|
|
22
|
-
|
28
|
+
@raw_socket = WebSocket::EventMachine::Client.connect(uri: self.server_address)
|
23
29
|
|
24
|
-
|
25
|
-
|
30
|
+
@raw_socket.onopen do
|
31
|
+
@raw_socket.send({action: :authenticate, payload: self.auth_token}.to_json)
|
26
32
|
end
|
27
33
|
|
28
34
|
# When a message is received, ensure the server sent a valid payload
|
29
35
|
# then handle it based on status code.
|
30
36
|
#
|
31
|
-
|
37
|
+
@raw_socket.onmessage do |msg, type|
|
32
38
|
message = json_try_parse(msg)
|
33
|
-
puts message.inspect
|
34
39
|
if message.nil? || message[:payload].nil? || message[:status].nil?
|
35
40
|
puts "Invalid message"
|
36
41
|
self.on_error.call
|
37
42
|
ws.close
|
38
|
-
elsif message[:status]
|
39
|
-
self.on_error.call(message
|
43
|
+
elsif message[:status].to_i >= 400 || message[:status].to_i == 0
|
44
|
+
self.on_error.call(message)
|
40
45
|
else
|
41
|
-
self.on_message.call(message
|
46
|
+
self.on_message.call(message)
|
42
47
|
end
|
43
48
|
end
|
44
49
|
|
45
|
-
|
50
|
+
@raw_socket.onclose do
|
46
51
|
self.on_close.call
|
47
52
|
EM.stop
|
48
53
|
end
|
49
54
|
|
50
|
-
|
55
|
+
@raw_socket.onerror do
|
51
56
|
self.on_error.call(0)
|
52
|
-
|
57
|
+
@raw_socket.close
|
53
58
|
EM.stop
|
54
59
|
end
|
55
60
|
|
data/sockeye-client.gemspec
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
lib = File.expand_path('../lib', __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'sockeye/client/version'
|
5
4
|
|
6
5
|
Gem::Specification.new do |spec|
|
7
6
|
spec.name = "sockeye-client"
|
8
|
-
spec.version =
|
7
|
+
spec.version = "0.1.1"
|
9
8
|
spec.authors = ["Jack Hayter"]
|
10
9
|
spec.email = ["jack@hockey-community.com"]
|
11
10
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sockeye-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jack Hayter
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-04-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -75,7 +75,6 @@ files:
|
|
75
75
|
- bin/console
|
76
76
|
- bin/setup
|
77
77
|
- lib/sockeye/client.rb
|
78
|
-
- lib/sockeye/client/version.rb
|
79
78
|
- sockeye-client.gemspec
|
80
79
|
homepage: https://github.com/HockeyCommunity/sockeye-client
|
81
80
|
licenses:
|
@@ -97,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
96
|
version: '0'
|
98
97
|
requirements: []
|
99
98
|
rubyforge_project:
|
100
|
-
rubygems_version: 2.6.
|
99
|
+
rubygems_version: 2.6.11
|
101
100
|
signing_key:
|
102
101
|
specification_version: 4
|
103
102
|
summary: Acts as a simple websocket client, designed for use with the sockeye-server.
|