socky-server 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +6 -0
- data/CHANGELOG.md +102 -0
- data/Gemfile +3 -0
- data/README.md +83 -8
- data/Rakefile +3 -21
- data/lib/socky.rb +1 -1
- data/lib/socky/connection.rb +1 -1
- data/socky-server.gemspec +26 -0
- data/spec/socky/connection_spec.rb +12 -12
- metadata +20 -47
- data/CHANGELOG.textile +0 -95
- data/VERSION +0 -1
data/.gitignore
ADDED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
## 0.4.1 / 2011-05-12
|
4
|
+
|
5
|
+
- new features:
|
6
|
+
- none
|
7
|
+
- bugfixes:
|
8
|
+
- restore compatibility with em-websocket 0.3.x
|
9
|
+
|
10
|
+
## 0.4.0 / 2010-10-27
|
11
|
+
|
12
|
+
- new features:
|
13
|
+
- rename project to 'socky-server-ruby' for future compatibility
|
14
|
+
- bugfixes:
|
15
|
+
- use fund_all in finders instead of collect in finders
|
16
|
+
|
17
|
+
## 0.2.1 / 2010-10-09
|
18
|
+
|
19
|
+
- new features:
|
20
|
+
- default config should have subscribe url's commented out for starting users
|
21
|
+
- bugfixes:
|
22
|
+
- show sent messages in true form instead of "inspect" one
|
23
|
+
|
24
|
+
## 0.2.0 / 2010-10-03
|
25
|
+
|
26
|
+
- new features:
|
27
|
+
- inline documentation
|
28
|
+
- bugfixes:
|
29
|
+
- send authentication after finishing handshake
|
30
|
+
- tests less using stubs and more real cases
|
31
|
+
- fix some tests
|
32
|
+
|
33
|
+
## 0.1.3 / 2010-09-23
|
34
|
+
|
35
|
+
- new features:
|
36
|
+
- none
|
37
|
+
- bugfixes:
|
38
|
+
- fix query :show_connections in ruby 1.9
|
39
|
+
- fix user authentication when url subscribe/unsubscribe is disabled
|
40
|
+
|
41
|
+
## 0.1.2 / 2010-09-21
|
42
|
+
|
43
|
+
- new features:
|
44
|
+
- none
|
45
|
+
- bugfixes:
|
46
|
+
- fix routes to spec_helper in ruby 1.9.2
|
47
|
+
- ruby 1.9 will no longer raise errors on String to_a call
|
48
|
+
|
49
|
+
## 0.1.1 / 2010-08-25
|
50
|
+
|
51
|
+
- new features:
|
52
|
+
- socky has now support for signed certificates by :tls_options config option
|
53
|
+
- bugfixes:
|
54
|
+
- none
|
55
|
+
|
56
|
+
## 0.1.0 / 2010-08-03
|
57
|
+
|
58
|
+
**IMPORTANT! This version will not work with plugin version lower than 0.1.0**
|
59
|
+
|
60
|
+
- new features:
|
61
|
+
- server now send authentication status
|
62
|
+
- new syntax
|
63
|
+
- option to exclude clients/channels
|
64
|
+
- bugfixes:
|
65
|
+
- none
|
66
|
+
|
67
|
+
## 0.0.9 / 2010-06-20
|
68
|
+
|
69
|
+
**IMPORTANT! This version will not work with plugin version lower than 0.0.9**
|
70
|
+
|
71
|
+
- new features:
|
72
|
+
- support for next version of em-websocket debug options(based on mloughran branch)
|
73
|
+
- support for websocket draft 76
|
74
|
+
- support for wss/SSL connections
|
75
|
+
- socky can now be started in 'daemon' mode
|
76
|
+
- socky now sending all messages in JSON format
|
77
|
+
- bugfixes:
|
78
|
+
- socky will no longer crash when when request query is invalid - i.e. chrome 6.0.*(with websocket draft76) and em-websocket 0.0.6
|
79
|
+
|
80
|
+
## 0.0.8 / 2010-06-06
|
81
|
+
|
82
|
+
- new features:
|
83
|
+
- full rspec suite
|
84
|
+
- allow admin param to be both "1" and "true"
|
85
|
+
- bugfixes:
|
86
|
+
- proper configuration options parsing order
|
87
|
+
- rescue from invalid config file
|
88
|
+
- rescue from invalid args
|
89
|
+
- symbolize_keys will no longer raise error if argument is not hash
|
90
|
+
- modules will no longer depend on parent class
|
91
|
+
- message will no longer raise exeption is JSON is invalid
|
92
|
+
|
93
|
+
## 0.0.7 / 2010-05-25
|
94
|
+
|
95
|
+
- new features:
|
96
|
+
- user authentication is now async
|
97
|
+
- bugfixes:
|
98
|
+
- server will no longer fail when starting from source instead of gem
|
99
|
+
|
100
|
+
## 0.0.6 / 2010-05-24
|
101
|
+
|
102
|
+
- initial release
|
data/Gemfile
ADDED
data/README.md
CHANGED
@@ -3,25 +3,100 @@ Socky - server in Ruby
|
|
3
3
|
|
4
4
|
Socky is push server for Ruby based on WebSockets. It allows you to break border between your application and client browser by letting the server initialize a connection and push data to the client.
|
5
5
|
|
6
|
-
##
|
6
|
+
## Example
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
8
|
+
You can try [live example](http://sockydemo.imanel.org) or view its [source code](http://github.com/socky/socky-example)
|
9
|
+
|
10
|
+
Also important information can be found on our [google group](http://groups.google.com/group/socky-users).
|
11
|
+
|
12
|
+
## Install
|
13
|
+
|
14
|
+
The best way to install Socky server is via RubyGems:
|
15
|
+
|
16
|
+
gem install socky-server
|
17
|
+
|
18
|
+
Socky ruby server requires the gems em-websocket and em-http-request. These are automatically installed by the gem install command.
|
19
|
+
|
20
|
+
Alternative method is to clone repo and run it manually:
|
21
|
+
|
22
|
+
git clone git://github.com/socky/socky-server-ruby.git
|
23
|
+
cd socky-server-ruby
|
24
|
+
./bin/socky
|
25
|
+
|
26
|
+
You can also build it after clonning(this will require Jeweler gem)
|
27
|
+
|
28
|
+
rake gemspec
|
29
|
+
rake build
|
14
30
|
|
15
31
|
## Runtime Dependencies
|
16
32
|
|
17
33
|
- EM-WebSocket: Backend for WebSocket server
|
18
34
|
- EM-HTTP-Client: Sending authorize requests
|
19
35
|
|
36
|
+
## Usage
|
37
|
+
|
38
|
+
After installing gem you will have binary available:
|
39
|
+
|
40
|
+
socky [OPTIONS]
|
41
|
+
|
42
|
+
First of all you will need to generate config file:
|
43
|
+
|
44
|
+
socky -g config.yml
|
45
|
+
|
46
|
+
After that you can tweak this file, or just run server with default values:
|
47
|
+
|
48
|
+
socky -c config.yml
|
49
|
+
|
50
|
+
## Configuration
|
51
|
+
|
52
|
+
The following is a list of the currently supported configuration options. These can all be specified by creating a config file. There are also flags for the `socky` executable which are described below next to their respective configuration options.
|
53
|
+
|
54
|
+
### Configuration Settings
|
55
|
+
|
56
|
+
| *Setting* | *Config* | *Flag* | *Description* |
|
57
|
+
| --------------- | ------------------------ | ----------------------- | ------------- |
|
58
|
+
| Generate config | | `-g, --generate [path]` | Generate default config file
|
59
|
+
| Read config | | `-c, --config [path]` | Path to configuration file
|
60
|
+
| Port | `port: [integer]` | `-p, --port PORT` | Set the port for server to listen
|
61
|
+
| Secure | `secure: [boolean]` | `-s, --secure` | Set wss/SSL model on
|
62
|
+
| TLS Options | `tls_options: [hash]` | | Paths to private key file and certificate chain file for secure connection
|
63
|
+
| Daemon | `daemon: [boolean]` | `-d, --daemon` | Run in daemon(background) mode
|
64
|
+
| Pid path | `pid_path: [path]` | `-P, --pid` | Path to store pid path
|
65
|
+
| Kill | | `-k, --kill` | Kill daemonized server described by file in pid path
|
66
|
+
| Use log | `log_path: [path]` | `-l, --log [path]` | Path to print debugging information
|
67
|
+
| Debug | `debug: [boolean]` | `--debug` | Run in debug mode
|
68
|
+
| Deep debug | `deep_debug: [boolean]` | `--deep-debug` | Run in debug mode that is even more verbose
|
69
|
+
| Subscribe URL | `subscribe_url: [url]` | | Url to with send authentication request
|
70
|
+
| Unsubscribe URL | `unsubscribe_url: [url]` | | Url to with send logout request
|
71
|
+
| Timeout | `timeout: [integer]` | | Time after with authentication request will timeout
|
72
|
+
| Secret | `secret: [string]` | | Key that will be used by to authorize as admin user
|
73
|
+
|
74
|
+
### Default Configuration
|
75
|
+
|
76
|
+
:port: 8080
|
77
|
+
:debug: false
|
78
|
+
|
79
|
+
:subscribe_url: http://localhost:3000/socky/subscribe
|
80
|
+
:unsubscribe_url: http://localhost:3000/socky/unsubscribe
|
81
|
+
|
82
|
+
:secret: my_secret_key
|
83
|
+
|
84
|
+
:secure: false
|
85
|
+
|
86
|
+
# :timeout: 3
|
87
|
+
|
88
|
+
# :log_path: /var/log/socky.log
|
89
|
+
# :pid_path: /var/run/socky.pid
|
90
|
+
|
91
|
+
# :tls_options:
|
92
|
+
# :private_key_file: /private/key
|
93
|
+
# :cert_chain_file: /ssl/certificate
|
94
|
+
|
20
95
|
## License
|
21
96
|
|
22
97
|
(The MIT License)
|
23
98
|
|
24
|
-
Copyright (c) 2010 Bernard Potocki
|
99
|
+
Copyright (c) 2010 Bernard Potocki
|
25
100
|
|
26
101
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
27
102
|
|
data/Rakefile
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
3
|
+
|
1
4
|
require 'rake'
|
2
5
|
require 'rake/clean'
|
3
6
|
CLEAN.include %w(**/*.{log,rbc})
|
@@ -8,24 +11,3 @@ task :default => :spec
|
|
8
11
|
|
9
12
|
RSpec::Core::RakeTask.new(:spec) do |t|
|
10
13
|
end
|
11
|
-
|
12
|
-
begin
|
13
|
-
require 'jeweler'
|
14
|
-
Jeweler::Tasks.new do |gemspec|
|
15
|
-
gemspec.name = "socky-server"
|
16
|
-
gemspec.summary = "Socky is a WebSocket server and client for Ruby"
|
17
|
-
gemspec.description = "Socky is a WebSocket server and client for Ruby"
|
18
|
-
gemspec.email = "bernard.potocki@imanel.org"
|
19
|
-
gemspec.homepage = "http://imanel.org/projects/socky"
|
20
|
-
gemspec.authors = ["Bernard Potocki"]
|
21
|
-
gemspec.add_dependency 'em-websocket', '>= 0.1.4'
|
22
|
-
gemspec.add_dependency 'em-http-request'
|
23
|
-
gemspec.add_dependency 'json'
|
24
|
-
gemspec.add_development_dependency 'rspec', '~> 2.0'
|
25
|
-
gemspec.add_development_dependency 'rack'
|
26
|
-
gemspec.add_development_dependency 'mongrel'
|
27
|
-
gemspec.files.exclude ".gitignore"
|
28
|
-
end
|
29
|
-
rescue LoadError
|
30
|
-
puts "Jeweler not available. Install it with: gem install jeweler"
|
31
|
-
end
|
data/lib/socky.rb
CHANGED
data/lib/socky/connection.rb
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "socky"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "socky-server"
|
7
|
+
s.version = Socky::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Bernard Potocki"]
|
10
|
+
s.email = ["bernard.potocki@imanel.org"]
|
11
|
+
s.homepage = "http://socky.org"
|
12
|
+
s.summary = %q{Socky is a WebSocket server and client for Ruby}
|
13
|
+
s.description = %q{Socky is a WebSocket server and client for Ruby}
|
14
|
+
|
15
|
+
s.add_runtime_dependency 'em-websocket', '~> 0.3.0'
|
16
|
+
s.add_runtime_dependency 'em-http-request'
|
17
|
+
s.add_runtime_dependency 'json'
|
18
|
+
s.add_development_dependency 'rspec', '~> 2.0'
|
19
|
+
s.add_development_dependency 'rack'
|
20
|
+
s.add_development_dependency 'mongrel'
|
21
|
+
|
22
|
+
s.files = `git ls-files`.split("\n")
|
23
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
24
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
25
|
+
s.require_paths = ["lib"]
|
26
|
+
end
|
@@ -20,34 +20,34 @@ describe Socky::Connection do
|
|
20
20
|
context "instance" do
|
21
21
|
before(:each) do
|
22
22
|
described_class.connections.clear
|
23
|
-
socket = mock(:socket, :request => { "
|
23
|
+
socket = mock(:socket, :request => { "query" => {}})
|
24
24
|
@connection = described_class.new(socket)
|
25
25
|
end
|
26
26
|
|
27
27
|
context "#admin" do
|
28
28
|
it "should return true for socket request data admin equal to '1' and 'true'" do
|
29
29
|
["1","true"].each do |value|
|
30
|
-
@connection.socket.request["
|
30
|
+
@connection.socket.request["query"]["admin"] = value
|
31
31
|
@connection.admin.should be_true
|
32
32
|
end
|
33
33
|
end
|
34
34
|
it "should return false for socket request data admin equal to anything except '1' and 'true'" do
|
35
35
|
[nil,"0","false","abstract"].each do |value|
|
36
|
-
@connection.socket.request["
|
36
|
+
@connection.socket.request["query"]["admin"] = value
|
37
37
|
@connection.admin.should be_false
|
38
38
|
end
|
39
39
|
end
|
40
40
|
it "should return false if socket request data is nil" do
|
41
|
-
@connection.socket.request["
|
41
|
+
@connection.socket.request["query"] = nil
|
42
42
|
@connection.admin.should be_false
|
43
43
|
end
|
44
44
|
end
|
45
45
|
it "#client should return client_id from socket request data" do
|
46
|
-
@connection.socket.request["
|
46
|
+
@connection.socket.request["query"]["client_id"] = "abstract"
|
47
47
|
@connection.client.should eql("abstract")
|
48
48
|
end
|
49
49
|
it "#secret should return client_secret from socket request data" do
|
50
|
-
@connection.socket.request["
|
50
|
+
@connection.socket.request["query"]["client_secret"] = "abstract"
|
51
51
|
@connection.secret.should eql("abstract")
|
52
52
|
end
|
53
53
|
context "#channels" do
|
@@ -56,19 +56,19 @@ describe Socky::Connection do
|
|
56
56
|
@connection.channels.class.should eql(Array)
|
57
57
|
end
|
58
58
|
it "should return table with nil if socket request data 'channels' is nil" do
|
59
|
-
@connection.socket.request["
|
59
|
+
@connection.socket.request["query"]["channels"] = nil
|
60
60
|
@connection.channels.should eql([nil])
|
61
61
|
end
|
62
62
|
it "should return table of channels if provided and separated by comma" do
|
63
|
-
@connection.socket.request["
|
63
|
+
@connection.socket.request["query"]["channels"] = "aaa,bbb,ccc"
|
64
64
|
@connection.channels.should eql(["aaa","bbb","ccc"])
|
65
65
|
end
|
66
66
|
it "should not allow empty names of channels" do
|
67
|
-
@connection.socket.request["
|
67
|
+
@connection.socket.request["query"]["channels"] = "aaa,,ccc"
|
68
68
|
@connection.channels.should eql(["aaa","ccc"])
|
69
69
|
end
|
70
70
|
it "should strip trailing spaces in channel names" do
|
71
|
-
@connection.socket.request["
|
71
|
+
@connection.socket.request["query"]["channels"] = " aaa\n , \n , ccc "
|
72
72
|
@connection.channels.should eql(["aaa","ccc"])
|
73
73
|
end
|
74
74
|
end
|
@@ -139,8 +139,8 @@ describe Socky::Connection do
|
|
139
139
|
described_class.connections.should have(0).items
|
140
140
|
end
|
141
141
|
it "#to_json should return self as hash of object_id, client_id and channels" do
|
142
|
-
@connection.socket.request["
|
143
|
-
@connection.socket.request["
|
142
|
+
@connection.socket.request["query"]["client_id"] = "abstract"
|
143
|
+
@connection.socket.request["query"]["channels"] = "first,second,third"
|
144
144
|
json = @connection.to_json
|
145
145
|
JSON.parse(json).should eql({ "id" => @connection.object_id,
|
146
146
|
"client_id" => @connection.client,
|
metadata
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: socky-server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 4
|
9
|
-
- 0
|
10
|
-
version: 0.4.0
|
4
|
+
prerelease:
|
5
|
+
version: 0.4.1
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
8
|
- Bernard Potocki
|
@@ -15,8 +10,8 @@ autorequire:
|
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
12
|
|
18
|
-
date:
|
19
|
-
default_executable:
|
13
|
+
date: 2011-05-12 00:00:00 +02:00
|
14
|
+
default_executable:
|
20
15
|
dependencies:
|
21
16
|
- !ruby/object:Gem::Dependency
|
22
17
|
name: em-websocket
|
@@ -24,14 +19,9 @@ dependencies:
|
|
24
19
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
20
|
none: false
|
26
21
|
requirements:
|
27
|
-
- -
|
22
|
+
- - ~>
|
28
23
|
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
segments:
|
31
|
-
- 0
|
32
|
-
- 1
|
33
|
-
- 4
|
34
|
-
version: 0.1.4
|
24
|
+
version: 0.3.0
|
35
25
|
type: :runtime
|
36
26
|
version_requirements: *id001
|
37
27
|
- !ruby/object:Gem::Dependency
|
@@ -42,9 +32,6 @@ dependencies:
|
|
42
32
|
requirements:
|
43
33
|
- - ">="
|
44
34
|
- !ruby/object:Gem::Version
|
45
|
-
hash: 3
|
46
|
-
segments:
|
47
|
-
- 0
|
48
35
|
version: "0"
|
49
36
|
type: :runtime
|
50
37
|
version_requirements: *id002
|
@@ -56,9 +43,6 @@ dependencies:
|
|
56
43
|
requirements:
|
57
44
|
- - ">="
|
58
45
|
- !ruby/object:Gem::Version
|
59
|
-
hash: 3
|
60
|
-
segments:
|
61
|
-
- 0
|
62
46
|
version: "0"
|
63
47
|
type: :runtime
|
64
48
|
version_requirements: *id003
|
@@ -70,10 +54,6 @@ dependencies:
|
|
70
54
|
requirements:
|
71
55
|
- - ~>
|
72
56
|
- !ruby/object:Gem::Version
|
73
|
-
hash: 3
|
74
|
-
segments:
|
75
|
-
- 2
|
76
|
-
- 0
|
77
57
|
version: "2.0"
|
78
58
|
type: :development
|
79
59
|
version_requirements: *id004
|
@@ -85,9 +65,6 @@ dependencies:
|
|
85
65
|
requirements:
|
86
66
|
- - ">="
|
87
67
|
- !ruby/object:Gem::Version
|
88
|
-
hash: 3
|
89
|
-
segments:
|
90
|
-
- 0
|
91
68
|
version: "0"
|
92
69
|
type: :development
|
93
70
|
version_requirements: *id005
|
@@ -99,25 +76,24 @@ dependencies:
|
|
99
76
|
requirements:
|
100
77
|
- - ">="
|
101
78
|
- !ruby/object:Gem::Version
|
102
|
-
hash: 3
|
103
|
-
segments:
|
104
|
-
- 0
|
105
79
|
version: "0"
|
106
80
|
type: :development
|
107
81
|
version_requirements: *id006
|
108
82
|
description: Socky is a WebSocket server and client for Ruby
|
109
|
-
email:
|
83
|
+
email:
|
84
|
+
- bernard.potocki@imanel.org
|
110
85
|
executables:
|
111
86
|
- socky
|
112
87
|
extensions: []
|
113
88
|
|
114
|
-
extra_rdoc_files:
|
115
|
-
|
89
|
+
extra_rdoc_files: []
|
90
|
+
|
116
91
|
files:
|
117
|
-
-
|
92
|
+
- .gitignore
|
93
|
+
- CHANGELOG.md
|
94
|
+
- Gemfile
|
118
95
|
- README.md
|
119
96
|
- Rakefile
|
120
|
-
- VERSION
|
121
97
|
- bin/socky
|
122
98
|
- lib/em-websocket_hacks.rb
|
123
99
|
- lib/socky.rb
|
@@ -131,6 +107,7 @@ files:
|
|
131
107
|
- lib/socky/options/config.rb
|
132
108
|
- lib/socky/options/parser.rb
|
133
109
|
- lib/socky/runner.rb
|
110
|
+
- socky-server.gemspec
|
134
111
|
- spec/em-websocket_spec.rb
|
135
112
|
- spec/files/default.yml
|
136
113
|
- spec/files/invalid.yml
|
@@ -148,12 +125,12 @@ files:
|
|
148
125
|
- spec/spec_helper.rb
|
149
126
|
- spec/support/stallion.rb
|
150
127
|
has_rdoc: true
|
151
|
-
homepage: http://
|
128
|
+
homepage: http://socky.org
|
152
129
|
licenses: []
|
153
130
|
|
154
131
|
post_install_message:
|
155
|
-
rdoc_options:
|
156
|
-
|
132
|
+
rdoc_options: []
|
133
|
+
|
157
134
|
require_paths:
|
158
135
|
- lib
|
159
136
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -161,28 +138,24 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
161
138
|
requirements:
|
162
139
|
- - ">="
|
163
140
|
- !ruby/object:Gem::Version
|
164
|
-
hash: 3
|
165
|
-
segments:
|
166
|
-
- 0
|
167
141
|
version: "0"
|
168
142
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
143
|
none: false
|
170
144
|
requirements:
|
171
145
|
- - ">="
|
172
146
|
- !ruby/object:Gem::Version
|
173
|
-
hash: 3
|
174
|
-
segments:
|
175
|
-
- 0
|
176
147
|
version: "0"
|
177
148
|
requirements: []
|
178
149
|
|
179
150
|
rubyforge_project:
|
180
|
-
rubygems_version: 1.
|
151
|
+
rubygems_version: 1.6.1
|
181
152
|
signing_key:
|
182
153
|
specification_version: 3
|
183
154
|
summary: Socky is a WebSocket server and client for Ruby
|
184
155
|
test_files:
|
185
156
|
- spec/em-websocket_spec.rb
|
157
|
+
- spec/files/default.yml
|
158
|
+
- spec/files/invalid.yml
|
186
159
|
- spec/socky/connection/authentication_spec.rb
|
187
160
|
- spec/socky/connection/finders_spec.rb
|
188
161
|
- spec/socky/connection_spec.rb
|
data/CHANGELOG.textile
DELETED
@@ -1,95 +0,0 @@
|
|
1
|
-
h1. Changelog
|
2
|
-
|
3
|
-
h2. 0.4.0 / 2010-10-27
|
4
|
-
|
5
|
-
* new features:
|
6
|
-
** rename project to 'socky-server-ruby' for future compatibility
|
7
|
-
* bugfixes:
|
8
|
-
** use fund_all in finders instead of collect in finders
|
9
|
-
|
10
|
-
h2. 0.2.1 / 2010-10-09
|
11
|
-
|
12
|
-
* new features:
|
13
|
-
** default config should have subscribe url's commented out for starting users
|
14
|
-
* bugfixes:
|
15
|
-
** show sent messages in true form instead of "inspect" one
|
16
|
-
|
17
|
-
h2. 0.2.0 / 2010-10-03
|
18
|
-
|
19
|
-
* new features:
|
20
|
-
** inline documentation
|
21
|
-
* bugfixes:
|
22
|
-
** send authentication after finishing handshake
|
23
|
-
** tests less using stubs and more real cases
|
24
|
-
** fix some tests
|
25
|
-
|
26
|
-
h2. 0.1.3 / 2010-09-23
|
27
|
-
|
28
|
-
* new features:
|
29
|
-
** none
|
30
|
-
* bugfixes:
|
31
|
-
** fix query :show_connections in ruby 1.9
|
32
|
-
** fix user authentication when url subscribe/unsubscribe is disabled
|
33
|
-
|
34
|
-
h2. 0.1.2 / 2010-09-21
|
35
|
-
|
36
|
-
* new features:
|
37
|
-
** none
|
38
|
-
* bugfixes:
|
39
|
-
** fix routes to spec_helper in ruby 1.9.2
|
40
|
-
** ruby 1.9 will no longer raise errors on String to_a call
|
41
|
-
|
42
|
-
h2. 0.1.1 / 2010-08-25
|
43
|
-
|
44
|
-
* new features:
|
45
|
-
** socky has now support for signed certificates by :tls_options config option
|
46
|
-
* bugfixes:
|
47
|
-
** none
|
48
|
-
|
49
|
-
h2. 0.1.0 / 2010-08-03
|
50
|
-
|
51
|
-
*IMPORTANT! This version will not work with plugin version lower than 0.1.0*
|
52
|
-
|
53
|
-
* new features:
|
54
|
-
** server now send authentication status
|
55
|
-
** new syntax
|
56
|
-
** option to exclude clients/channels
|
57
|
-
* bugfixes:
|
58
|
-
** none
|
59
|
-
|
60
|
-
h2. 0.0.9 / 2010-06-20
|
61
|
-
|
62
|
-
*IMPORTANT! This version will not work with plugin version lower than 0.0.9*
|
63
|
-
|
64
|
-
* new features:
|
65
|
-
** support for next version of em-websocket debug options(based on mloughran branch)
|
66
|
-
** support for websocket draft 76
|
67
|
-
** support for wss/SSL connections
|
68
|
-
** socky can now be started in 'daemon' mode
|
69
|
-
** socky now sending all messages in JSON format
|
70
|
-
* bugfixes:
|
71
|
-
** socky will no longer crash when when request query is invalid - i.e. chrome 6.0.*(with websocket draft76) and em-websocket 0.0.6
|
72
|
-
|
73
|
-
h2. 0.0.8 / 2010-06-06
|
74
|
-
|
75
|
-
* new features:
|
76
|
-
** full rspec suite
|
77
|
-
** allow admin param to be both "1" and "true"
|
78
|
-
* bugfixes:
|
79
|
-
** proper configuration options parsing order
|
80
|
-
** rescue from invalid config file
|
81
|
-
** rescue from invalid args
|
82
|
-
** symbolize_keys will no longer raise error if argument is not hash
|
83
|
-
** modules will no longer depend on parent class
|
84
|
-
** message will no longer raise exeption is JSON is invalid
|
85
|
-
|
86
|
-
h2. 0.0.7 / 2010-05-25
|
87
|
-
|
88
|
-
* new features:
|
89
|
-
** user authentication is now async
|
90
|
-
* bugfixes:
|
91
|
-
** server will no longer fail when starting from source instead of gem
|
92
|
-
|
93
|
-
h2. 0.0.6 / 2010-05-24
|
94
|
-
|
95
|
-
* initial release
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.4.0
|