palava_machine 1.0.1 → 1.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.
- checksums.yaml +6 -14
- data/ChangeLog.md +6 -0
- data/Gemfile +1 -2
- data/README.md +71 -0
- data/Rakefile +4 -13
- data/bin/palava-machine-daemon +2 -1
- data/lib/palava_machine/manager.rb +3 -3
- data/lib/palava_machine/server/core_support.rb +2 -2
- data/lib/palava_machine/version.rb +3 -1
- data/palava_machine.gemspec +11 -13
- metadata +75 -90
- data/ReadMe.md +0 -68
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
OTcwZTY0YWZjYmIwZWViZjQ2NzljM2ZhM2Y1NTM0ZDVlYzRhZThjMTYxZTBm
|
10
|
-
NDUyOGZjYjcyNDJlYzBkYTVlYTM4MTA1NWY5NDkyZTg4MGQ4NzQxOWU5NDli
|
11
|
-
YTdkZGNlNGY5MTEwMGNmMWY5MjQ2MzU0Y2M4ZGY4M2FlYWFlYTg=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MzVmMzk1NzdjMDk2MjU5ZmJmNDc5YmY0OWQxNjcxYThkNWM4MDQ0NGFlMjk4
|
14
|
-
OGI1ZmExM2NmNGY0OTUwM2IxOTdmOTFlNzUwNWUwNTNkYmY3MDQyNmM0NjAy
|
15
|
-
MjUzYWI0ZmU2OWEwNDY1ZGU3OWI5ZmVjYThhYTAxYmU2MDUzM2M=
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e101a30d7ba5b405fe74ca2650addd08a292e33f5c9f98a1171776ebbe9ad5eb
|
4
|
+
data.tar.gz: eb780d084fce489cd4fb1726fd2c484512ca5a5de80ed8b276377d2aa23e04d4
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4f25f260258caaa6e0302b82442c523be890aebafe7b977ce05a571fdbfa3eeec298ae7dcc54f74283d508904fc522aaac6bbbdc5347e23361a3f8f15e1dbd7d
|
7
|
+
data.tar.gz: 760ce85c0c7c0373a7b635694402b466d4d7d8e7e826a6ad88978bdbe6a66084cbcaa6870b8a181d02214cfb8a8e4a5bc55291b112e6561ee664bcd3f71f21f1
|
data/ChangeLog.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
## 1.0.2
|
2
|
+
- Fix EM trap context message for newer Rubies
|
3
|
+
- Update Rakefile, CI etc to current situation
|
4
|
+
- Update hiredis dependency
|
5
|
+
- Allow 'message' event type in send\_to\_peer
|
6
|
+
|
1
7
|
## 1.0.1
|
2
8
|
- Don't verify ws sup-protocol for now
|
3
9
|
- Only use integers for stat user counts
|
data/Gemfile
CHANGED
data/README.md
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
# PalavaMachine [![[version]](https://badge.fury.io/rb/palava_machine.svg)](https://badge.fury.io/rb/palava_machine) [![[travis]](https://travis-ci.org/janlelis/palava_machine.png)](https://travis-ci.org/janlelis/palava_machine)
|
2
|
+
|
3
|
+
[palava.tv](https://palava.tv) is simplistic video communication with your friends and colleagues from within your web browser. It is build on top of the [WebRTC](https://webrtc.org/) technology. No registration or browser plugin required.
|
4
|
+
|
5
|
+
Please see the [palava repository](https://github.com/palavatv/palava) for an overview of palava and report issues there.
|
6
|
+
|
7
|
+
PalavaMachine is a WebRTC signaling server. Signaling describes the process of finding other peers and exchange information about how to establish a media connection. It works together with the [palava-client](https://github.com/palavatv/palava-client).
|
8
|
+
|
9
|
+
The server is implemented in [EventMachine](https://github.com/eventmachine/eventmachine/) and [Redis PubSub](https://redis.io/topics/pubsub) and communication to the clients is done via WebSockets.
|
10
|
+
|
11
|
+
**This application is currently not part of the palava.tv stack**
|
12
|
+
|
13
|
+
It was replaced by [SignalTower](https://github.com/farao/signaltower/), which is written in Elixir and uses the same protocol. Although this project is currently not actively worked on, it still functions as a drop-in replacement for the SignalTower and might also be developed further at some point.
|
14
|
+
|
15
|
+
## Installation & Usage
|
16
|
+
|
17
|
+
Make sure you have redis(https://redis.io/download) installed, then install the [palava_machine gem](https://rubygems.org/gems/palava_machine):
|
18
|
+
|
19
|
+
$ gem install palava_machine
|
20
|
+
|
21
|
+
To start the server on port 4233, run:
|
22
|
+
|
23
|
+
$ palava-machine
|
24
|
+
|
25
|
+
### Daemonized Version
|
26
|
+
|
27
|
+
The PalavaMachine can be started as a daemon process for production usage:
|
28
|
+
|
29
|
+
$ palava-machine-daemon start
|
30
|
+
|
31
|
+
Stop it with
|
32
|
+
|
33
|
+
$ palava-machine-daemon stop
|
34
|
+
|
35
|
+
### Configure using Environment Variables
|
36
|
+
|
37
|
+
You can set the address of the redis server via environment variable. The default is 'localhost:6379'.
|
38
|
+
|
39
|
+
$ export PALAVA_REDIS="some_ip:some_port"
|
40
|
+
$ bin/palava-machine
|
41
|
+
|
42
|
+
### Specs
|
43
|
+
|
44
|
+
To run the test suite use
|
45
|
+
|
46
|
+
$ rspec
|
47
|
+
|
48
|
+
## Credits
|
49
|
+
|
50
|
+
AGPLv3. Part of the [palava project](https://palava.tv).
|
51
|
+
|
52
|
+
Copyright (C) 2014-2020 palava e. V. contact@palava.tv
|
53
|
+
|
54
|
+
Copyright (C) 2013 Jan Lelis hi@ruby.consulting
|
55
|
+
Copyright (C) 2013 Marius Melzer marius@rasumi.net
|
56
|
+
Copyright (C) 2013 Stephan Thamm stephan@innovailable.eu
|
57
|
+
Copyright (C) 2013 Kilian Ulbrich kilian@innovailable.eu
|
58
|
+
|
59
|
+
This program is free software: you can redistribute it and/or modify
|
60
|
+
it under the terms of the GNU Affero General Public License as
|
61
|
+
published by the Free Software Foundation, either version 3 of the
|
62
|
+
License, or (at your option) any later version.
|
63
|
+
|
64
|
+
This program is distributed in the hope that it will be useful,
|
65
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
66
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
67
|
+
GNU Affero General Public License for more details.
|
68
|
+
|
69
|
+
You should have received a copy of the GNU Affero General Public
|
70
|
+
License along with this program. If not, see
|
71
|
+
<http://www.gnu.org/licenses/>.
|
data/Rakefile
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
require 'fileutils'
|
2
2
|
require 'bundler/setup'
|
3
3
|
require 'yaml'
|
4
|
+
require 'redis'
|
4
5
|
require 'resque/tasks'
|
5
|
-
require '
|
6
|
+
require 'resque/scheduler/tasks'
|
6
7
|
|
7
8
|
ROOT_PATH = File.dirname(__FILE__) + '/../'
|
8
9
|
|
@@ -34,16 +35,6 @@ def run_scheduler
|
|
34
35
|
Process.detach(pid)
|
35
36
|
end
|
36
37
|
|
37
|
-
|
38
|
-
namespace :deploy do
|
39
|
-
# desc 'whiskey_disk deploy hook'
|
40
|
-
# task :post_deploy => %w[
|
41
|
-
# resque:restart_workers
|
42
|
-
# resque:restart_scheduler
|
43
|
-
# ]
|
44
|
-
end
|
45
|
-
|
46
|
-
|
47
38
|
namespace :resque do
|
48
39
|
task :environment do
|
49
40
|
require 'resque'
|
@@ -140,7 +131,7 @@ end
|
|
140
131
|
|
141
132
|
desc "Install the gem locally"
|
142
133
|
task :install => :gem do
|
143
|
-
sh %{gem install pkg/#{gemspec.name}-#{gemspec.version}.gem --no-
|
134
|
+
sh %{gem install pkg/#{gemspec.name}-#{gemspec.version}.gem --no-doc}
|
144
135
|
end
|
145
136
|
|
146
137
|
desc "Generate the gemspec"
|
@@ -158,6 +149,6 @@ task :spec do
|
|
158
149
|
sh %[rspec spec]
|
159
150
|
end
|
160
151
|
|
161
|
-
task :default => :
|
152
|
+
task :default => :spec
|
162
153
|
task :test => :spec
|
163
154
|
|
data/bin/palava-machine-daemon
CHANGED
@@ -69,7 +69,7 @@ module PalavaMachine
|
|
69
69
|
|
70
70
|
|
71
71
|
def initialize(options = {})
|
72
|
-
@redis_address = 'localhost:6379'
|
72
|
+
@redis_address = ENV['PALAVA_REDIS'] || 'localhost:6379'
|
73
73
|
@redis_db = options[:db] || 0
|
74
74
|
@connections = SocketStore.new
|
75
75
|
@log = Logger.new(STDOUT)
|
@@ -167,7 +167,7 @@ module PalavaMachine
|
|
167
167
|
private :get_statuses_for_members
|
168
168
|
|
169
169
|
def send_joined_room(connection_id, members_with_statuses)
|
170
|
-
@connections[connection_id].send_text({
|
170
|
+
@connections[connection_id] and @connections[connection_id].send_text({
|
171
171
|
event: 'joined_room',
|
172
172
|
own_id: connection_id,
|
173
173
|
peers: members_with_statuses,
|
@@ -234,7 +234,7 @@ module PalavaMachine
|
|
234
234
|
@redis.sismember("store:room:members:#{room_id}", peer_id) do |is_member|
|
235
235
|
return_error connection_id, 'unknown peer' if is_member.nil? || is_member.zero?
|
236
236
|
|
237
|
-
unless %w[offer answer ice_candidate].include? data['event']
|
237
|
+
unless %w[offer answer ice_candidate message].include? data['event']
|
238
238
|
return_error connection_id, 'event not allowed'
|
239
239
|
end
|
240
240
|
|
data/palava_machine.gemspec
CHANGED
@@ -4,38 +4,36 @@ name = 'palava_machine'
|
|
4
4
|
require File.dirname(__FILE__) + "/lib/#{name}/version"
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.required_ruby_version = '
|
7
|
+
s.required_ruby_version = '~> 2.1'
|
8
8
|
s.name = name
|
9
9
|
s.version = PalavaMachine::VERSION
|
10
10
|
s.authors = ["Jan Lelis", "Marius Melzer", "Stephan Thamm", "Kilian Ulbrich"]
|
11
11
|
s.email = "contact@palava.tv"
|
12
12
|
s.homepage = 'https://github.com/palavatv/palava-machine'
|
13
13
|
s.license = 'AGPL-3.0'
|
14
|
-
s.summary = "
|
15
|
-
s.description = "A WebRTC
|
14
|
+
s.summary = "Implementation of the palava protocol for WebRTC signaling"
|
15
|
+
s.description = "A WebRTC signaling server implemented with WebSockets, EventMachine and Redis Pub-Sub"
|
16
16
|
s.files = Dir.glob(%w[{lib,test}/**/*.rb bin/* [A-Z]*.{txt,rdoc} ext/**/*.{rb,c} features/**/*]) + %w{Rakefile palava_machine.gemspec Gemfile}
|
17
|
-
s.extra_rdoc_files = ["
|
17
|
+
s.extra_rdoc_files = ["README.md", "ChangeLog.md", "ProtocolChangeLog.md", "LICENSE.txt"]
|
18
18
|
s.executables = ['palava-machine', 'palava-machine-daemon']
|
19
19
|
|
20
|
-
s.add_dependency '
|
20
|
+
s.add_dependency 'eventmachine', '~> 1.2.7'
|
21
|
+
s.add_dependency 'em-websocket', '~> 0.5.1'
|
21
22
|
|
22
|
-
s.add_dependency 'hiredis', '~> 0.
|
23
|
-
s.add_dependency 'em-hiredis', '~> 0.
|
23
|
+
s.add_dependency 'hiredis', '~> 0.6.3'
|
24
|
+
s.add_dependency 'em-hiredis', '~> 0.3.1'
|
24
25
|
|
25
|
-
s.add_dependency 'redis', '
|
26
|
+
s.add_dependency 'redis', '~> 4.1.3'
|
26
27
|
s.add_dependency 'resque'
|
27
28
|
s.add_dependency 'resque-scheduler'
|
28
29
|
s.add_dependency 'mongo'
|
29
30
|
s.add_dependency 'bson_ext'
|
30
31
|
|
31
|
-
s.add_dependency '
|
32
|
-
s.add_dependency 'daemons'
|
32
|
+
s.add_dependency 'daemons', '~> 1.3.1'
|
33
33
|
s.add_dependency 'logger-colors'
|
34
34
|
s.add_dependency 'local_port'
|
35
|
-
s.add_dependency 'rake'
|
36
|
-
s.add_dependency 'whiskey_disk'
|
37
35
|
|
36
|
+
s.add_development_dependency 'rake'
|
38
37
|
s.add_development_dependency 'rspec'
|
39
|
-
# s.add_development_dependency 'debugger'
|
40
38
|
end
|
41
39
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: palava_machine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Lelis
|
@@ -11,219 +11,205 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2020-04-29 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
|
-
name:
|
17
|
+
name: eventmachine
|
18
18
|
requirement: !ruby/object:Gem::Requirement
|
19
19
|
requirements:
|
20
|
-
- -
|
20
|
+
- - "~>"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
22
|
+
version: 1.2.7
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
29
|
+
version: 1.2.7
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
31
|
+
name: em-websocket
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
requirements:
|
34
|
-
- - ~>
|
34
|
+
- - "~>"
|
35
35
|
- !ruby/object:Gem::Version
|
36
|
-
version: 0.
|
36
|
+
version: 0.5.1
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
|
-
- - ~>
|
41
|
+
- - "~>"
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: 0.
|
43
|
+
version: 0.5.1
|
44
44
|
- !ruby/object:Gem::Dependency
|
45
|
-
name:
|
45
|
+
name: hiredis
|
46
46
|
requirement: !ruby/object:Gem::Requirement
|
47
47
|
requirements:
|
48
|
-
- - ~>
|
48
|
+
- - "~>"
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version: 0.
|
50
|
+
version: 0.6.3
|
51
51
|
type: :runtime
|
52
52
|
prerelease: false
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
54
54
|
requirements:
|
55
|
-
- - ~>
|
55
|
+
- - "~>"
|
56
56
|
- !ruby/object:Gem::Version
|
57
|
-
version: 0.
|
57
|
+
version: 0.6.3
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
|
-
name:
|
59
|
+
name: em-hiredis
|
60
60
|
requirement: !ruby/object:Gem::Requirement
|
61
61
|
requirements:
|
62
|
-
- -
|
62
|
+
- - "~>"
|
63
63
|
- !ruby/object:Gem::Version
|
64
|
-
version:
|
64
|
+
version: 0.3.1
|
65
65
|
type: :runtime
|
66
66
|
prerelease: false
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
68
68
|
requirements:
|
69
|
-
- -
|
69
|
+
- - "~>"
|
70
70
|
- !ruby/object:Gem::Version
|
71
|
-
version:
|
71
|
+
version: 0.3.1
|
72
72
|
- !ruby/object:Gem::Dependency
|
73
|
-
name:
|
73
|
+
name: redis
|
74
74
|
requirement: !ruby/object:Gem::Requirement
|
75
75
|
requirements:
|
76
|
-
- -
|
76
|
+
- - "~>"
|
77
77
|
- !ruby/object:Gem::Version
|
78
|
-
version:
|
78
|
+
version: 4.1.3
|
79
79
|
type: :runtime
|
80
80
|
prerelease: false
|
81
81
|
version_requirements: !ruby/object:Gem::Requirement
|
82
82
|
requirements:
|
83
|
-
- -
|
83
|
+
- - "~>"
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version:
|
85
|
+
version: 4.1.3
|
86
86
|
- !ruby/object:Gem::Dependency
|
87
|
-
name: resque
|
87
|
+
name: resque
|
88
88
|
requirement: !ruby/object:Gem::Requirement
|
89
89
|
requirements:
|
90
|
-
- -
|
90
|
+
- - ">="
|
91
91
|
- !ruby/object:Gem::Version
|
92
92
|
version: '0'
|
93
93
|
type: :runtime
|
94
94
|
prerelease: false
|
95
95
|
version_requirements: !ruby/object:Gem::Requirement
|
96
96
|
requirements:
|
97
|
-
- -
|
97
|
+
- - ">="
|
98
98
|
- !ruby/object:Gem::Version
|
99
99
|
version: '0'
|
100
100
|
- !ruby/object:Gem::Dependency
|
101
|
-
name:
|
101
|
+
name: resque-scheduler
|
102
102
|
requirement: !ruby/object:Gem::Requirement
|
103
103
|
requirements:
|
104
|
-
- -
|
104
|
+
- - ">="
|
105
105
|
- !ruby/object:Gem::Version
|
106
106
|
version: '0'
|
107
107
|
type: :runtime
|
108
108
|
prerelease: false
|
109
109
|
version_requirements: !ruby/object:Gem::Requirement
|
110
110
|
requirements:
|
111
|
-
- -
|
111
|
+
- - ">="
|
112
112
|
- !ruby/object:Gem::Version
|
113
113
|
version: '0'
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
|
-
name:
|
115
|
+
name: mongo
|
116
116
|
requirement: !ruby/object:Gem::Requirement
|
117
117
|
requirements:
|
118
|
-
- -
|
118
|
+
- - ">="
|
119
119
|
- !ruby/object:Gem::Version
|
120
120
|
version: '0'
|
121
121
|
type: :runtime
|
122
122
|
prerelease: false
|
123
123
|
version_requirements: !ruby/object:Gem::Requirement
|
124
124
|
requirements:
|
125
|
-
- -
|
125
|
+
- - ">="
|
126
126
|
- !ruby/object:Gem::Version
|
127
127
|
version: '0'
|
128
128
|
- !ruby/object:Gem::Dependency
|
129
|
-
name:
|
129
|
+
name: bson_ext
|
130
130
|
requirement: !ruby/object:Gem::Requirement
|
131
131
|
requirements:
|
132
|
-
- -
|
132
|
+
- - ">="
|
133
133
|
- !ruby/object:Gem::Version
|
134
134
|
version: '0'
|
135
135
|
type: :runtime
|
136
136
|
prerelease: false
|
137
137
|
version_requirements: !ruby/object:Gem::Requirement
|
138
138
|
requirements:
|
139
|
-
- -
|
139
|
+
- - ">="
|
140
140
|
- !ruby/object:Gem::Version
|
141
141
|
version: '0'
|
142
142
|
- !ruby/object:Gem::Dependency
|
143
143
|
name: daemons
|
144
144
|
requirement: !ruby/object:Gem::Requirement
|
145
145
|
requirements:
|
146
|
-
- -
|
146
|
+
- - "~>"
|
147
147
|
- !ruby/object:Gem::Version
|
148
|
-
version:
|
148
|
+
version: 1.3.1
|
149
149
|
type: :runtime
|
150
150
|
prerelease: false
|
151
151
|
version_requirements: !ruby/object:Gem::Requirement
|
152
152
|
requirements:
|
153
|
-
- -
|
153
|
+
- - "~>"
|
154
154
|
- !ruby/object:Gem::Version
|
155
|
-
version:
|
155
|
+
version: 1.3.1
|
156
156
|
- !ruby/object:Gem::Dependency
|
157
157
|
name: logger-colors
|
158
158
|
requirement: !ruby/object:Gem::Requirement
|
159
159
|
requirements:
|
160
|
-
- -
|
160
|
+
- - ">="
|
161
161
|
- !ruby/object:Gem::Version
|
162
162
|
version: '0'
|
163
163
|
type: :runtime
|
164
164
|
prerelease: false
|
165
165
|
version_requirements: !ruby/object:Gem::Requirement
|
166
166
|
requirements:
|
167
|
-
- -
|
167
|
+
- - ">="
|
168
168
|
- !ruby/object:Gem::Version
|
169
169
|
version: '0'
|
170
170
|
- !ruby/object:Gem::Dependency
|
171
171
|
name: local_port
|
172
172
|
requirement: !ruby/object:Gem::Requirement
|
173
173
|
requirements:
|
174
|
-
- -
|
174
|
+
- - ">="
|
175
175
|
- !ruby/object:Gem::Version
|
176
176
|
version: '0'
|
177
177
|
type: :runtime
|
178
178
|
prerelease: false
|
179
179
|
version_requirements: !ruby/object:Gem::Requirement
|
180
180
|
requirements:
|
181
|
-
- -
|
181
|
+
- - ">="
|
182
182
|
- !ruby/object:Gem::Version
|
183
183
|
version: '0'
|
184
184
|
- !ruby/object:Gem::Dependency
|
185
185
|
name: rake
|
186
186
|
requirement: !ruby/object:Gem::Requirement
|
187
187
|
requirements:
|
188
|
-
- -
|
189
|
-
- !ruby/object:Gem::Version
|
190
|
-
version: '0'
|
191
|
-
type: :runtime
|
192
|
-
prerelease: false
|
193
|
-
version_requirements: !ruby/object:Gem::Requirement
|
194
|
-
requirements:
|
195
|
-
- - ! '>='
|
196
|
-
- !ruby/object:Gem::Version
|
197
|
-
version: '0'
|
198
|
-
- !ruby/object:Gem::Dependency
|
199
|
-
name: whiskey_disk
|
200
|
-
requirement: !ruby/object:Gem::Requirement
|
201
|
-
requirements:
|
202
|
-
- - ! '>='
|
188
|
+
- - ">="
|
203
189
|
- !ruby/object:Gem::Version
|
204
190
|
version: '0'
|
205
|
-
type: :
|
191
|
+
type: :development
|
206
192
|
prerelease: false
|
207
193
|
version_requirements: !ruby/object:Gem::Requirement
|
208
194
|
requirements:
|
209
|
-
- -
|
195
|
+
- - ">="
|
210
196
|
- !ruby/object:Gem::Version
|
211
197
|
version: '0'
|
212
198
|
- !ruby/object:Gem::Dependency
|
213
199
|
name: rspec
|
214
200
|
requirement: !ruby/object:Gem::Requirement
|
215
201
|
requirements:
|
216
|
-
- -
|
202
|
+
- - ">="
|
217
203
|
- !ruby/object:Gem::Version
|
218
204
|
version: '0'
|
219
205
|
type: :development
|
220
206
|
prerelease: false
|
221
207
|
version_requirements: !ruby/object:Gem::Requirement
|
222
208
|
requirements:
|
223
|
-
- -
|
209
|
+
- - ">="
|
224
210
|
- !ruby/object:Gem::Version
|
225
211
|
version: '0'
|
226
|
-
description: A WebRTC
|
212
|
+
description: A WebRTC signaling server implemented with WebSockets, EventMachine and
|
227
213
|
Redis Pub-Sub
|
228
214
|
email: contact@palava.tv
|
229
215
|
executables:
|
@@ -231,33 +217,33 @@ executables:
|
|
231
217
|
- palava-machine-daemon
|
232
218
|
extensions: []
|
233
219
|
extra_rdoc_files:
|
234
|
-
-
|
220
|
+
- README.md
|
235
221
|
- ChangeLog.md
|
236
222
|
- ProtocolChangeLog.md
|
237
223
|
- LICENSE.txt
|
238
224
|
files:
|
225
|
+
- ChangeLog.md
|
226
|
+
- Gemfile
|
227
|
+
- LICENSE.txt
|
228
|
+
- ProtocolChangeLog.md
|
229
|
+
- README.md
|
230
|
+
- Rakefile
|
231
|
+
- bin/palava-machine
|
232
|
+
- bin/palava-machine-daemon
|
239
233
|
- lib/palava_machine.rb
|
234
|
+
- lib/palava_machine/client_message.rb
|
235
|
+
- lib/palava_machine/jobs.rb
|
236
|
+
- lib/palava_machine/jobs/export_stats_job.rb
|
240
237
|
- lib/palava_machine/manager.rb
|
241
|
-
- lib/palava_machine/version.rb
|
242
|
-
- lib/palava_machine/server/verify_handshake.rb
|
243
|
-
- lib/palava_machine/server/server_info.rb
|
244
|
-
- lib/palava_machine/server/core_events.rb
|
245
|
-
- lib/palava_machine/server/core_support.rb
|
246
238
|
- lib/palava_machine/runner.rb
|
247
|
-
- lib/palava_machine/jobs.rb
|
248
|
-
- lib/palava_machine/client_message.rb
|
249
239
|
- lib/palava_machine/server.rb
|
250
|
-
- lib/palava_machine/
|
240
|
+
- lib/palava_machine/server/core_events.rb
|
241
|
+
- lib/palava_machine/server/core_support.rb
|
242
|
+
- lib/palava_machine/server/server_info.rb
|
243
|
+
- lib/palava_machine/server/verify_handshake.rb
|
251
244
|
- lib/palava_machine/socket_store.rb
|
252
|
-
-
|
253
|
-
- bin/palava-machine
|
254
|
-
- LICENSE.txt
|
255
|
-
- Rakefile
|
245
|
+
- lib/palava_machine/version.rb
|
256
246
|
- palava_machine.gemspec
|
257
|
-
- Gemfile
|
258
|
-
- ReadMe.md
|
259
|
-
- ChangeLog.md
|
260
|
-
- ProtocolChangeLog.md
|
261
247
|
homepage: https://github.com/palavatv/palava-machine
|
262
248
|
licenses:
|
263
249
|
- AGPL-3.0
|
@@ -268,18 +254,17 @@ require_paths:
|
|
268
254
|
- lib
|
269
255
|
required_ruby_version: !ruby/object:Gem::Requirement
|
270
256
|
requirements:
|
271
|
-
- -
|
257
|
+
- - "~>"
|
272
258
|
- !ruby/object:Gem::Version
|
273
|
-
version: 1
|
259
|
+
version: '2.1'
|
274
260
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
275
261
|
requirements:
|
276
|
-
- -
|
262
|
+
- - ">="
|
277
263
|
- !ruby/object:Gem::Version
|
278
264
|
version: '0'
|
279
265
|
requirements: []
|
280
|
-
|
281
|
-
rubygems_version: 2.0.8
|
266
|
+
rubygems_version: 3.1.2
|
282
267
|
signing_key:
|
283
268
|
specification_version: 4
|
284
|
-
summary:
|
269
|
+
summary: Implementation of the palava protocol for WebRTC signaling
|
285
270
|
test_files: []
|
data/ReadMe.md
DELETED
@@ -1,68 +0,0 @@
|
|
1
|
-
# PalavaMachine
|
2
|
-
|
3
|
-
## Description
|
4
|
-
|
5
|
-
PalavaMachine is a WebRTC signaling server. Signaling describes the process of finding other peers and exchange information about how to establish a media connection. It works together with the [palava-client](https://github.com/palavatv/palava-client].
|
6
|
-
|
7
|
-
The server is implemented in [EventMachine](http://rubyeventmachine.com/) and [Redis PubSub](http://redis.io/topics/pubsub) and communication to the clients is done via WebSockets. See it in action at [palava.tv.](https://palava.tv)
|
8
|
-
|
9
|
-
## What can I do with it?
|
10
|
-
|
11
|
-
*This is a pre-release for interested Ruby/JS/WebRTC developers*. If you are unsure, what to use this gem for, you'll just need to wait. We'll soon put a more detailed instructions on our [blog](https://blog.palava.tv).
|
12
|
-
|
13
|
-
## Installation & Usage
|
14
|
-
|
15
|
-
Make sure you have redis(http://redis.io/download) installed, then clone this repository and run
|
16
|
-
|
17
|
-
$ bundle install
|
18
|
-
|
19
|
-
Start the server with
|
20
|
-
|
21
|
-
$ bin/palava-machine
|
22
|
-
|
23
|
-
Alternatively, download the [palava_machine gem](http://rubygems.org/gems/palava_machine) from rubygems.org:
|
24
|
-
|
25
|
-
$ gem install palava_machine
|
26
|
-
|
27
|
-
And run:
|
28
|
-
|
29
|
-
$ palava-machine
|
30
|
-
|
31
|
-
### Deamonized Version
|
32
|
-
|
33
|
-
The PalavaMachine can be started as a daemon process for production usage:
|
34
|
-
|
35
|
-
$ palava-machine-daemon start
|
36
|
-
|
37
|
-
Stop it with
|
38
|
-
|
39
|
-
$ palava-machine-daemon stop
|
40
|
-
|
41
|
-
### Specs
|
42
|
-
|
43
|
-
To run the test suite use
|
44
|
-
|
45
|
-
$ rspec
|
46
|
-
|
47
|
-
## Credits
|
48
|
-
|
49
|
-
AGPLv3. Part of the [palava project](https://palava.tv).
|
50
|
-
|
51
|
-
Copyright 2013 Jan Lelis jan@signaling.io
|
52
|
-
Copyright 2013 Marius Melzer marius@signaling.io
|
53
|
-
Copyright 2013 Stephan Thamm thammi@chaossource.net
|
54
|
-
Copyright 2013 Kilian Ulbrich kilian@innovailable.eu
|
55
|
-
|
56
|
-
This program is free software: you can redistribute it and/or modify
|
57
|
-
it under the terms of the GNU Affero General Public License as
|
58
|
-
published by the Free Software Foundation, either version 3 of the
|
59
|
-
License, or (at your option) any later version.
|
60
|
-
|
61
|
-
This program is distributed in the hope that it will be useful,
|
62
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
63
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
64
|
-
GNU Affero General Public License for more details.
|
65
|
-
|
66
|
-
You should have received a copy of the GNU Affero General Public
|
67
|
-
License along with this program. If not, see
|
68
|
-
<http://www.gnu.org/licenses/>.
|