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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d1fde1748f44529891a66051e2c7903efaf2735e
4
- data.tar.gz: bce702ee8620fe7e6fa645d567f08dc403dbb685
3
+ metadata.gz: 5c99d3e071afcea42497129c3f5b75b1646d0de3
4
+ data.tar.gz: 417d2cd068b7da62e45de1400ab9c5c94c4bd00c
5
5
  SHA512:
6
- metadata.gz: 673ddb0a6bab37578a5af1ff449004ae36f30a810291483a83bb26a29babeaeb79d390f05dd53db305f3d1e79752250ef69fdb5ae866db7c1a9b1e6ba0e3d289
7
- data.tar.gz: 0f93ae8ec8b0fc103a820984de4fb1f0cbe554967d98a3fff648dfce6fdc2cfd051b0042ca69880fa8717f1c88da55f8406773a907a8854dc39c0022978b6936
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
- Don't bother
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
 
@@ -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:, on_error:, on_close:)
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 = auth_token
13
- self.on_message = on_message
14
- self.on_error = on_error
15
- self.on_close = 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
- ws = WebSocket::EventMachine::Client.connect(uri: self.server_address)
28
+ @raw_socket = WebSocket::EventMachine::Client.connect(uri: self.server_address)
23
29
 
24
- ws.onopen do
25
- ws.send({action: :authenticate, payload: self.auth_token}.to_json)
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
- ws.onmessage do |msg, type|
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] != 200
39
- self.on_error.call(message[:status])
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[:payload])
46
+ self.on_message.call(message)
42
47
  end
43
48
  end
44
49
 
45
- ws.onclose do
50
+ @raw_socket.onclose do
46
51
  self.on_close.call
47
52
  EM.stop
48
53
  end
49
54
 
50
- ws.onerror do
55
+ @raw_socket.onerror do
51
56
  self.on_error.call(0)
52
- ws.close
57
+ @raw_socket.close
53
58
  EM.stop
54
59
  end
55
60
 
@@ -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 = Sockeye::Client::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.0
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-03-22 00:00:00.000000000 Z
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.10
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.
@@ -1,5 +0,0 @@
1
- module Sockeye
2
- module Client
3
- VERSION = "0.1.0"
4
- end
5
- end