sockeye-client 0.1.0 → 0.1.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/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.
|