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 CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MmE4MWM3YTA5NjYxMzQ3ODM4ODlmZmM2NDkxY2EzOWJhMTY4MDgwNw==
5
- data.tar.gz: !binary |-
6
- ZTY4OTY5YjI4ODQxNTY5ZThjMGIzYTRmNWMzNTRlOWI5Mjk1ZDVhOQ==
7
- !binary "U0hBNTEy":
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
@@ -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
@@ -1,4 +1,3 @@
1
1
  source 'https://rubygems.org'
2
- # ruby '2.0.0'
3
- ruby '1.9.3'
2
+
4
3
  gemspec
@@ -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 'resque_scheduler/tasks'
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-rdoc --no-ri}
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 => :gemspec
152
+ task :default => :spec
162
153
  task :test => :spec
163
154
 
@@ -3,5 +3,6 @@ require 'daemons'
3
3
 
4
4
  Daemons.run("#{File.dirname(__FILE__)}/palava-machine",
5
5
  multiple: true,
6
- ARGV: ARGV + ['--', '4240', '5']
6
+ ARGV: ARGV + ['--', '4240', '5'],
7
+ monitor: true,
7
8
  )
@@ -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
 
@@ -37,8 +37,8 @@ module PalavaMachine
37
37
  manager.shutdown!
38
38
  EM.stop
39
39
  else
40
- manager.announce_shutdown(timeout)
41
- EM.next_tick do
40
+ EM.add_timer(0) do
41
+ manager.announce_shutdown(timeout)
42
42
  manager.shutdown!(timeout)
43
43
  EM.stop
44
44
  end
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PalavaMachine
2
- VERSION = "1.0.1"
4
+ VERSION = "1.0.2"
3
5
  PROTOCOL_VERSION = "1.0.0"
4
6
 
5
7
  def self.protocol_identifier
@@ -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 = '>= 1.9.2'
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 = "The machine behind palava."
15
- s.description = "A WebRTC Signaling Server implemented with WebSockets, EventMachine and Redis Pub-Sub"
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 = ["ReadMe.md", "ChangeLog.md", "ProtocolChangeLog.md", "LICENSE.txt"]
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 'em-websocket'
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.4.5'
23
- s.add_dependency 'em-hiredis', '~> 0.2.1'
23
+ s.add_dependency 'hiredis', '~> 0.6.3'
24
+ s.add_dependency 'em-hiredis', '~> 0.3.1'
24
25
 
25
- s.add_dependency 'redis', '>= 2.2.0'
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 'bundler'
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.1
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: 2013-11-29 00:00:00.000000000 Z
14
+ date: 2020-04-29 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
- name: em-websocket
17
+ name: eventmachine
18
18
  requirement: !ruby/object:Gem::Requirement
19
19
  requirements:
20
- - - ! '>='
20
+ - - "~>"
21
21
  - !ruby/object:Gem::Version
22
- version: '0'
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: '0'
29
+ version: 1.2.7
30
30
  - !ruby/object:Gem::Dependency
31
- name: hiredis
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.4.5
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.4.5
43
+ version: 0.5.1
44
44
  - !ruby/object:Gem::Dependency
45
- name: em-hiredis
45
+ name: hiredis
46
46
  requirement: !ruby/object:Gem::Requirement
47
47
  requirements:
48
- - - ~>
48
+ - - "~>"
49
49
  - !ruby/object:Gem::Version
50
- version: 0.2.1
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.2.1
57
+ version: 0.6.3
58
58
  - !ruby/object:Gem::Dependency
59
- name: redis
59
+ name: em-hiredis
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
- - - ! '>='
62
+ - - "~>"
63
63
  - !ruby/object:Gem::Version
64
- version: 2.2.0
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: 2.2.0
71
+ version: 0.3.1
72
72
  - !ruby/object:Gem::Dependency
73
- name: resque
73
+ name: redis
74
74
  requirement: !ruby/object:Gem::Requirement
75
75
  requirements:
76
- - - ! '>='
76
+ - - "~>"
77
77
  - !ruby/object:Gem::Version
78
- version: '0'
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: '0'
85
+ version: 4.1.3
86
86
  - !ruby/object:Gem::Dependency
87
- name: resque-scheduler
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: mongo
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: bson_ext
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: bundler
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: '0'
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: '0'
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: :runtime
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 Signaling Server implemented with WebSockets, EventMachine and
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
- - ReadMe.md
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/jobs/export_stats_job.rb
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
- - bin/palava-machine-daemon
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.9.2
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
- rubyforge_project:
281
- rubygems_version: 2.0.8
266
+ rubygems_version: 3.1.2
282
267
  signing_key:
283
268
  specification_version: 4
284
- summary: The machine behind palava.
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/>.