socket.io-emitter 0.2.0 → 1.0.0
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.
- 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.
|