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 +4 -4
- data/.travis.yml +3 -0
- data/History.md +5 -0
- data/lib/socket.io/emitter.rb +17 -4
- data/lib/socket.io/emitter/version.rb +1 -1
- data/spec/package.json +3 -3
- data/spec/socket.io/emitter_spec.rb +9 -1
- data/spec/testapp.js +10 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 31b40713b1b256a6cc784da22a654699d77d5482
|
4
|
+
data.tar.gz: b42a9fa77346c47a18ff642d7013e8f62d7e5399
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5a3809b7b8ca8813320bc54cc20860511f7eb57cfa3765786dfd8cb6a021f40a2f73c2ce7bf83e05db548f5cb00771603e61cb68359be48dc77168a175f0766c
|
7
|
+
data.tar.gz: 0b362218af8a6e190acc3b323390af6452096e50ddd4ed32236e2a02b4f9aaa367c164b74ee14c8708645dc522fb4768eb3ca23133a3e9d33828244b05b8c64a
|
data/.travis.yml
CHANGED
data/History.md
ADDED
data/lib/socket.io/emitter.rb
CHANGED
@@ -13,10 +13,11 @@ module SocketIO
|
|
13
13
|
|
14
14
|
def initialize(options = {})
|
15
15
|
@redis = options[:redis] || Redis.new
|
16
|
-
@
|
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
|
-
|
42
|
-
@
|
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
|
data/spec/package.json
CHANGED
@@ -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
|
-
%
|
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
|
|
data/spec/testapp.js
CHANGED
@@ -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.
|
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:
|
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.
|
126
|
+
rubygems_version: 2.0.14.1
|
126
127
|
signing_key:
|
127
128
|
specification_version: 4
|
128
129
|
summary: Ruby Socket.IO emitter implementation.
|