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 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