socketio-client 0.0.1 → 0.0.2

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.
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ /Gemfile.lock
data/Gemfile CHANGED
@@ -1,4 +1,8 @@
1
1
  source "http://rubygems.org"
2
2
 
3
+ group :development do
4
+ gem "rspec"
5
+ end
6
+
3
7
  # Specify your gem's dependencies in socket.io-client.gemspec
4
8
  gemspec
data/README.md CHANGED
@@ -15,9 +15,9 @@ This client currently supports:
15
15
  ## How to use:
16
16
 
17
17
  ```ruby
18
- require 'socketIO'
18
+ require 'SocketIO'
19
19
 
20
- client = SocketIO.connect("localhost") do
20
+ client = SocketIO.connect("http://localhost") do
21
21
  before_start do
22
22
  on_message {|message| puts "incoming message: #{message}"}
23
23
  on_event('news') { |data| puts data.first} # data is an array fo things.
@@ -32,9 +32,9 @@ You can start the socket io syncronously and then continue with your work
32
32
  this crates threads so be careful.
33
33
 
34
34
  ```ruby
35
- require 'socketIO'
35
+ require 'SocketIO'
36
36
 
37
- client = SocketIO.connect("localhost", sync: true) do
37
+ client = SocketIO.connect("http://localhost", sync: true) do
38
38
  before_start do
39
39
  on_message {|message| puts message}
40
40
  on_disconnect {puts "I GOT A DISCONNECT"}
@@ -55,4 +55,4 @@ end
55
55
  ## Examples
56
56
 
57
57
  examples can be found in the examples/ folder.
58
- A corrosponding server can be found in the examples/servers
58
+ A corrosponding server can be found in the examples/servers
data/lib/SocketIO.rb CHANGED
@@ -5,18 +5,20 @@ require 'parser'
5
5
 
6
6
  module SocketIO
7
7
 
8
- def self.connect(host, options = {}, &block)
9
- response = RestClient.get "http://#{host}/socket.io/1/"
10
- # resonse should be in the form of sessionid:heartbeattimeout:closetimeout:supported stuff
8
+ # params [URI, String] uri
9
+ def self.connect(uri, options = {}, &block)
10
+ uri = URI(uri)
11
+ # handshke
12
+ response = RestClient.get "#{uri.scheme}://#{uri.host}:#{uri.port}/socket.io/1/"
11
13
  response_array = response.split(':')
12
- response_array = [host] + response_array << options
14
+ response_array = [uri] + response_array << options
13
15
  cli = Client.new(*response_array)
14
16
  cli.instance_eval(&block) if block
15
17
  cli.start
16
18
  end
17
19
 
18
20
  class Client
19
- VERSION = "0.0.1"
21
+ VERSION = "0.0.2"
20
22
 
21
23
  [:INT, :TERM].each do |sig|
22
24
  Signal.trap(sig) do
@@ -29,8 +31,10 @@ module SocketIO
29
31
  # The state of the Socket.IO socket can be disconnected, disconnecting, connected and connecting.
30
32
  # The transport connection can be closed, closing, open, and opening.
31
33
 
32
- def initialize(host, session_id, heartbeat_timeout, connection_timeout, supported_transports, options = {})
33
- @host = host
34
+ def initialize(uri, session_id, heartbeat_timeout, connection_timeout, supported_transports, options = {})
35
+ @uri = uri
36
+ namespace = uri.path.sub(%r~^/~, '')
37
+ @namespace = namespace.empty? ? "socket.io" : namespace
34
38
  @session_id = session_id
35
39
  @hb_timeout = heartbeat_timeout
36
40
  @connect_timeout = connection_timeout
@@ -51,7 +55,8 @@ module SocketIO
51
55
 
52
56
  def connect_transport
53
57
  if @supported_transports.include? "websocket"
54
- @transport = WebSocket.new("ws://#{@host}/socket.io/1/websocket/#{@session_id}")
58
+ scheme = @uri.scheme == "https" ? "wss" : "ws"
59
+ @transport = WebSocket.new("#{scheme}://#{@uri.host}:#{@uri.port}/socket.io/1/websocket/#{@session_id}", origin: @uri.to_s)
55
60
  else
56
61
  raise "We only support WebSockets.. and this server doesnt like web sockets.. O NO!!"
57
62
  end
@@ -166,4 +171,4 @@ module SocketIO
166
171
  end
167
172
  end
168
173
 
169
- end
174
+ end
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  $:.push File.expand_path("../lib", __FILE__)
3
- require 'socketIO'
3
+ require 'SocketIO'
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "socketio-client"
data/spec/parser_spec.rb CHANGED
@@ -1,4 +1,4 @@
1
- require 'socketIO'
1
+ require 'SocketIO'
2
2
 
3
3
  describe Parser do
4
4
 
@@ -19,4 +19,4 @@ describe Parser do
19
19
  Parser.decode("9").should == {type: "0"}
20
20
  end
21
21
 
22
- end
22
+ end
@@ -1,7 +1,7 @@
1
1
  describe SocketIO do
2
2
 
3
3
  before :all do
4
- @client = SocketIO.connect("localhost", :sync => true)
4
+ @client = SocketIO.connect("http://localhost", :sync => true)
5
5
  end
6
6
 
7
7
  it "can send a heartbeat" do
@@ -43,4 +43,4 @@ describe SocketIO do
43
43
 
44
44
 
45
45
 
46
- end
46
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: socketio-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-10 00:00:00.000000000Z
12
+ date: 2012-03-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
16
- requirement: &2154912940 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,12 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2154912940
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  description: uses a very simple web socket
26
31
  email:
27
32
  - lyon@delorum.com
@@ -29,6 +34,7 @@ executables: []
29
34
  extensions: []
30
35
  extra_rdoc_files: []
31
36
  files:
37
+ - .gitignore
32
38
  - Gemfile
33
39
  - README.md
34
40
  - Rakefile
@@ -69,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
69
75
  version: '0'
70
76
  requirements: []
71
77
  rubyforge_project: socketio-client
72
- rubygems_version: 1.8.11
78
+ rubygems_version: 1.8.20
73
79
  signing_key:
74
80
  specification_version: 3
75
81
  summary: A basic Socket.io client implememtation written for ruby
@@ -79,3 +85,4 @@ test_files:
79
85
  - spec/setup/start.rb
80
86
  - spec/setup/stop.rb
81
87
  - spec/socketio_spec.rb
88
+ has_rdoc: