sinatra-websocketio 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ === 0.1.5 2013-03-19
2
+
3
+ * modify session storage
4
+ * not push to unexist client
5
+
1
6
  === 0.1.4 2013-03-19
2
7
 
3
8
  * update event_emitter.js v0.0.7
@@ -1,5 +1,5 @@
1
1
  module Sinatra
2
2
  module WebSocketIO
3
- VERSION = "0.1.4"
3
+ VERSION = "0.1.5"
4
4
  end
5
5
  end
@@ -24,9 +24,7 @@ module Sinatra
24
24
  ws.send({:type => :error, :data => "invalid session_id (#{session_id})"}.to_json)
25
25
  ws.close
26
26
  else
27
- self.sessions[session_id] = {
28
- :websocket => ws
29
- }
27
+ self.sessions[session_id] = ws
30
28
  ws.onclose do
31
29
  self.sessions.delete session_id
32
30
  self.emit :disconnect, session_id
@@ -51,9 +49,10 @@ module Sinatra
51
49
  def self.push(type, data, opt={})
52
50
  session_ids = opt[:to].to_s.empty? ? self.sessions.keys : [opt[:to]]
53
51
  session_ids.each do |id|
52
+ next unless sessions.include? id
54
53
  s = sessions[id]
55
54
  begin
56
- s[:websocket].send({:type => type, :data => data}.to_json)
55
+ s.send({:type => type, :data => data}.to_json)
57
56
  rescue
58
57
  next
59
58
  end
@@ -61,11 +60,7 @@ module Sinatra
61
60
  end
62
61
 
63
62
  def self.sessions
64
- @@sessions ||= Hash.new{|h,session_id|
65
- h[session_id] = {
66
- :websocket => nil
67
- }
68
- }
63
+ @@sessions ||= Hash.new
69
64
  end
70
65
 
71
66
  def self.create_session(ip_addr)
@@ -7,7 +7,7 @@ Gem::Specification.new do |gem|
7
7
  gem.version = Sinatra::WebSocketIO::VERSION
8
8
  gem.authors = ["Sho Hashimoto"]
9
9
  gem.email = ["hashimoto@shokai.org"]
10
- gem.description = %q{Node.js like WebSocket I/O plugin for Sinatra.}
10
+ gem.description = %q{WebSocket component for Sinatra RocketIO}
11
11
  gem.summary = gem.description
12
12
  gem.homepage = "http://shokai.github.com/sinatra-websocketio"
13
13
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra-websocketio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -139,7 +139,7 @@ dependencies:
139
139
  - - ! '>='
140
140
  - !ruby/object:Gem::Version
141
141
  version: 0.1.1
142
- description: Node.js like WebSocket I/O plugin for Sinatra.
142
+ description: WebSocket component for Sinatra RocketIO
143
143
  email:
144
144
  - hashimoto@shokai.org
145
145
  executables: []
@@ -204,7 +204,7 @@ rubyforge_project:
204
204
  rubygems_version: 1.8.24
205
205
  signing_key:
206
206
  specification_version: 3
207
- summary: Node.js like WebSocket I/O plugin for Sinatra.
207
+ summary: WebSocket component for Sinatra RocketIO
208
208
  test_files:
209
209
  - test/app.rb
210
210
  - test/app/config.ru