socket.io-emitter 0.2.0 → 1.0.0

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: 8949263ea52c8b7bc3bbb22059f3447d63502216
4
- data.tar.gz: d09ede88e369533f728a0a11a29673b09ab633a8
3
+ metadata.gz: 31b40713b1b256a6cc784da22a654699d77d5482
4
+ data.tar.gz: b42a9fa77346c47a18ff642d7013e8f62d7e5399
5
5
  SHA512:
6
- metadata.gz: 6d641176398d21feee7ebb1f2fc30b9540ac8f01b4ca99fe903258ef0b226076261039a22cba72d2efb8b94e9107c8e28f95102961e30b9c7ce0ab97fd9f1b4f
7
- data.tar.gz: ca6e0117dd69149324301a0db86a87f4b51f3c167b75bc7d7604a9ba4656e5cd92b2784cca41c59ea3e83bf3b47e08bc3b8c45ffa0ce8e1f29ef9d49d50a88d8
6
+ metadata.gz: 5a3809b7b8ca8813320bc54cc20860511f7eb57cfa3765786dfd8cb6a021f40a2f73c2ce7bf83e05db548f5cb00771603e61cb68359be48dc77168a175f0766c
7
+ data.tar.gz: 0b362218af8a6e190acc3b323390af6452096e50ddd4ed32236e2a02b4f9aaa367c164b74ee14c8708645dc522fb4768eb3ca23133a3e9d33828244b05b8c64a
@@ -1,5 +1,8 @@
1
1
  language: ruby
2
+ before_install:
3
+ - gem update bundler
2
4
  rvm:
5
+ - 2.3.1
3
6
  - 2.2
4
7
  - 2.1
5
8
  - 2.0
@@ -0,0 +1,5 @@
1
+
2
+ 1.0.0 / 2016-08-18
3
+ ==================
4
+
5
+ * add support for socket.io-redis >= 0.2.0
@@ -13,10 +13,11 @@ module SocketIO
13
13
 
14
14
  def initialize(options = {})
15
15
  @redis = options[:redis] || Redis.new
16
- @key = "#{options[:key] || 'socket.io'}#emitter";
17
- @nsp = nil
16
+ @prefix = "#{options[:key] || 'socket.io'}";
18
17
  @rooms = []
19
18
  @flags = {}
19
+ @nsp = nil
20
+ @uid = 'emitter'
20
21
  end
21
22
 
22
23
  FLAGS.each do |flag|
@@ -38,8 +39,20 @@ module SocketIO
38
39
  packet[:data] = args
39
40
  packet[:nsp] = @nsp || '/'
40
41
 
41
- packed = MessagePack.pack([packet, { rooms: @rooms, flags: @flags }])
42
- @redis.publish(@key, packed)
42
+ opts = {}
43
+ opts[:rooms] = @rooms
44
+ opts[:flags] = @flags
45
+
46
+ chn = "#{@prefix}##{packet[:nsp]}#"
47
+ msg = MessagePack.pack([@uid, packet, opts])
48
+ if @rooms && @rooms.length > 0
49
+ @rooms.each do |room|
50
+ chn_room = "#{chn}#{room}#"
51
+ @redis.publish(chn_room, msg)
52
+ end
53
+ else
54
+ @redis.publish(chn, msg)
55
+ end
43
56
 
44
57
  self
45
58
  end
@@ -1,5 +1,5 @@
1
1
  module SocketIO
2
2
  class Emitter
3
- VERSION = '0.2.0'
3
+ VERSION = '1.0.0'
4
4
  end
5
5
  end
@@ -9,8 +9,8 @@
9
9
  "author": "joker1007",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
- "socket.io": "^1.0.6",
13
- "socket.io-redis": "^0.1.3",
14
- "socket.io-client": "~1.0.6"
12
+ "socket.io": "^1.4.8",
13
+ "socket.io-redis": "^1.0.0",
14
+ "socket.io-client": "~1.4.8"
15
15
  }
16
16
  }
@@ -23,6 +23,14 @@ describe SocketIO::Emitter do
23
23
  end
24
24
  end
25
25
 
26
+ it 'should be able to emit messages to room' do
27
+ emitter.of('/room').to('room').emit('room event', 'room payload')
28
+
29
+ timeout(1) do
30
+ expect($child_io.gets.chomp).to eq 'room payload'
31
+ end
32
+ end
33
+
26
34
  it 'should not emit message to all namespace' do
27
35
  emitter.of('/nsp').broadcast.emit('nsp broadcast event', 'nsp broadcast payload')
28
36
 
@@ -57,7 +65,7 @@ describe SocketIO::Emitter do
57
65
  expect(second.instance_variable_get(:@nsp)).to eq "second"
58
66
  end
59
67
 
60
- %i(json volatile broadcast).each do |flag|
68
+ %w(json volatile broadcast).map(&:to_sym).each do |flag|
61
69
  it "builds a new object each time the #{flag} flag is changed" do
62
70
  flagged = emitter.send(flag)
63
71
 
@@ -5,6 +5,10 @@ var redis = require('socket.io-redis');
5
5
  var srv = io(8125);
6
6
  srv.adapter(redis({ host: 'localhost', port: 6380 }));
7
7
  var nsp = srv.of('/nsp');
8
+ var room = srv.of('/room');
9
+ room.on('connection', function(socket) {
10
+ socket.join('room');
11
+ });
8
12
 
9
13
  var cli = ioc('ws://localhost:8125', {forceNew: true});
10
14
 
@@ -25,3 +29,9 @@ cliNsp.on('broadcast event', function(payload) {
25
29
  cliNsp.on('nsp broadcast event', function(payload) {
26
30
  console.log("GOOD");
27
31
  });
32
+
33
+ var cliRoom = ioc('ws://localhost:8125/room', {forceNew: true});
34
+
35
+ cliRoom.on('room event', function(payload) {
36
+ console.log(payload);
37
+ });
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: socket.io-emitter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - nulltask
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-12 00:00:00.000000000 Z
11
+ date: 2016-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis
@@ -91,6 +91,7 @@ files:
91
91
  - .rspec
92
92
  - .travis.yml
93
93
  - Gemfile
94
+ - History.md
94
95
  - Rakefile
95
96
  - Readme.md
96
97
  - lib/socket.io-emitter.rb
@@ -122,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
123
  version: '0'
123
124
  requirements: []
124
125
  rubyforge_project:
125
- rubygems_version: 2.4.8
126
+ rubygems_version: 2.0.14.1
126
127
  signing_key:
127
128
  specification_version: 4
128
129
  summary: Ruby Socket.IO emitter implementation.