firehose 1.2.3 → 1.2.4
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.
- data/README.md +2 -28
- data/lib/assets/javascripts/firehose/web_socket.js.coffee +11 -8
- data/lib/firehose/rack/ping.rb +2 -0
- data/lib/firehose/version.rb +2 -2
- data/spec/integrations/shared_examples.rb +3 -1
- metadata +45 -5
- checksums.yaml +0 -15
data/README.md
CHANGED
@@ -70,8 +70,6 @@ Firehose doesn't just stop at curl; it has a full-featured JavaScript client tha
|
|
70
70
|
Still have the server running? Copy and paste the code below into Firebug or the WebKit console.
|
71
71
|
|
72
72
|
```javascript
|
73
|
-
// You'll need to set for WS to work in IE. The value here is the default.
|
74
|
-
window.WEB_SOCKET_SWF_LOCATION = '/assets/firehose/WebSocketMain.swf';
|
75
73
|
|
76
74
|
new Firehose.Consumer({
|
77
75
|
message: function(msg){
|
@@ -134,15 +132,7 @@ my_sprockets_env = Sprockets::Environment.new
|
|
134
132
|
Firehose::Assets::Sprockets.configure my_sprockets_env
|
135
133
|
```
|
136
134
|
|
137
|
-
3.
|
138
|
-
|
139
|
-
```erb
|
140
|
-
window.WEB_SOCKET_SWF_LOCATION = '<%= asset_path('firehose/WebSocketMain.swf') %>'
|
141
|
-
```
|
142
|
-
|
143
|
-
The options you can set in this file come directly from https://github.com/gimite/web-socket-js (which is the flash web socket implementation used by Firehose).
|
144
|
-
|
145
|
-
4) Require your config file and the firehose gem. This would look something like this:
|
135
|
+
3. Require your config file and the firehose gem. This would look something like this:
|
146
136
|
|
147
137
|
```ruby
|
148
138
|
#= require some/other/js/file
|
@@ -172,22 +162,6 @@ if exceptional_key = ENV['EXCEPTIONAL_KEY']
|
|
172
162
|
end
|
173
163
|
```
|
174
164
|
|
175
|
-
# Flash Policy File
|
176
|
-
|
177
|
-
This works out of the box in development if you use the included Procfile with Foreman. However, that solution doesn't work well with a lot production setups, so it is disabled in other environments.
|
178
|
-
|
179
|
-
[Here is a hack to server your policy file via Nginx](http://blog.vokle.com/index.php/2009/06/10/dealing-with-adobe-and-serving-socket-policy-servers-via-nginx-and-10-lines-of-code/)
|
180
|
-
|
181
|
-
You can also add a similar hack to HAProxy to serve your policy file.
|
182
|
-
|
183
|
-
```sh
|
184
|
-
listen swf_policy_requests 0.0.0.0:843
|
185
|
-
# Be careful here. This needs to be an absolute path.
|
186
|
-
errorfile 400 /path/to/my/crossdomain.xml
|
187
|
-
```
|
188
|
-
|
189
|
-
In either case, you'll want to be careful about using these hacks on ports that you are also using for genuine HTTP traffic.
|
190
|
-
|
191
165
|
# Deployment
|
192
166
|
|
193
167
|
The recommended method of deploying firehose is to deploy it separately from your main app.
|
@@ -206,4 +180,4 @@ Of course, you could use `exceptional` instead of `airbrake` and `thin` instead
|
|
206
180
|
|
207
181
|
2. Set up `config/deploy.rb` to your liking. You can follow most directions for using Capistrano and Foreman to deploy Rack apps, such as https://gist.github.com/1027117
|
208
182
|
|
209
|
-
3. Set up `config/rainbows.rb` (if you are using Rainbows!). The gem includes an example to get you started.
|
183
|
+
3. Set up `config/rainbows.rb` (if you are using Rainbows!). The gem includes an example to get you started.
|
@@ -4,10 +4,8 @@ KEEPALIVE_PING_TIMEOUT = 20000
|
|
4
4
|
class Firehose.WebSocket extends Firehose.Transport
|
5
5
|
name: -> 'WebSocket'
|
6
6
|
|
7
|
+
# Check if WebSocket is an object in the window.
|
7
8
|
@supported: ->
|
8
|
-
# Compatibility reference: http://caniuse.com/websockets
|
9
|
-
# We don't need to explicitly check for Flash web socket or MozWebSocket
|
10
|
-
# because web_socket.js has already handled that.
|
11
9
|
window.WebSocket?
|
12
10
|
|
13
11
|
constructor: (args) ->
|
@@ -17,11 +15,16 @@ class Firehose.WebSocket extends Firehose.Transport
|
|
17
15
|
@config.webSocket.connectionVerified = @config.connectionVerified
|
18
16
|
|
19
17
|
_request: =>
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
18
|
+
# Run this is a try/catch block because IE10 inside of a .NET control
|
19
|
+
# complains about security zones.
|
20
|
+
try
|
21
|
+
@socket = new window.WebSocket "ws:#{@config.uri}?#{$.param @config.params}"
|
22
|
+
@socket.onopen = @_open
|
23
|
+
@socket.onclose = @_close
|
24
|
+
@socket.onerror = @_error
|
25
|
+
@socket.onmessage = @_lookForInitialPong
|
26
|
+
catch err
|
27
|
+
console?.log(err)
|
25
28
|
|
26
29
|
_open: =>
|
27
30
|
sendPing @socket
|
data/lib/firehose/rack/ping.rb
CHANGED
data/lib/firehose/version.rb
CHANGED
@@ -82,7 +82,9 @@ shared_examples_for 'Firehose::Rack::App' do
|
|
82
82
|
ws = nil
|
83
83
|
end
|
84
84
|
|
85
|
-
ws.onerror
|
85
|
+
ws.onerror = lambda do |event|
|
86
|
+
raise 'ws failed' + "\n" + event.inspect
|
87
|
+
end
|
86
88
|
end
|
87
89
|
|
88
90
|
# Great, we have all the pieces in order, lets run this thing in the reactor.
|
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: firehose
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.4
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Brad Gessler
|
@@ -11,11 +12,12 @@ authors:
|
|
11
12
|
autorequire:
|
12
13
|
bindir: bin
|
13
14
|
cert_chain: []
|
14
|
-
date: 2013-
|
15
|
+
date: 2013-05-24 00:00:00.000000000 Z
|
15
16
|
dependencies:
|
16
17
|
- !ruby/object:Gem::Dependency
|
17
18
|
name: eventmachine
|
18
19
|
requirement: !ruby/object:Gem::Requirement
|
20
|
+
none: false
|
19
21
|
requirements:
|
20
22
|
- - ! '>='
|
21
23
|
- !ruby/object:Gem::Version
|
@@ -23,6 +25,7 @@ dependencies:
|
|
23
25
|
type: :runtime
|
24
26
|
prerelease: false
|
25
27
|
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
26
29
|
requirements:
|
27
30
|
- - ! '>='
|
28
31
|
- !ruby/object:Gem::Version
|
@@ -30,6 +33,7 @@ dependencies:
|
|
30
33
|
- !ruby/object:Gem::Dependency
|
31
34
|
name: em-hiredis
|
32
35
|
requirement: !ruby/object:Gem::Requirement
|
36
|
+
none: false
|
33
37
|
requirements:
|
34
38
|
- - ! '>='
|
35
39
|
- !ruby/object:Gem::Version
|
@@ -37,6 +41,7 @@ dependencies:
|
|
37
41
|
type: :runtime
|
38
42
|
prerelease: false
|
39
43
|
version_requirements: !ruby/object:Gem::Requirement
|
44
|
+
none: false
|
40
45
|
requirements:
|
41
46
|
- - ! '>='
|
42
47
|
- !ruby/object:Gem::Version
|
@@ -44,6 +49,7 @@ dependencies:
|
|
44
49
|
- !ruby/object:Gem::Dependency
|
45
50
|
name: thor
|
46
51
|
requirement: !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
47
53
|
requirements:
|
48
54
|
- - ! '>='
|
49
55
|
- !ruby/object:Gem::Version
|
@@ -51,6 +57,7 @@ dependencies:
|
|
51
57
|
type: :runtime
|
52
58
|
prerelease: false
|
53
59
|
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
none: false
|
54
61
|
requirements:
|
55
62
|
- - ! '>='
|
56
63
|
- !ruby/object:Gem::Version
|
@@ -58,6 +65,7 @@ dependencies:
|
|
58
65
|
- !ruby/object:Gem::Dependency
|
59
66
|
name: faraday
|
60
67
|
requirement: !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
61
69
|
requirements:
|
62
70
|
- - ! '>='
|
63
71
|
- !ruby/object:Gem::Version
|
@@ -65,6 +73,7 @@ dependencies:
|
|
65
73
|
type: :runtime
|
66
74
|
prerelease: false
|
67
75
|
version_requirements: !ruby/object:Gem::Requirement
|
76
|
+
none: false
|
68
77
|
requirements:
|
69
78
|
- - ! '>='
|
70
79
|
- !ruby/object:Gem::Version
|
@@ -72,6 +81,7 @@ dependencies:
|
|
72
81
|
- !ruby/object:Gem::Dependency
|
73
82
|
name: faye-websocket
|
74
83
|
requirement: !ruby/object:Gem::Requirement
|
84
|
+
none: false
|
75
85
|
requirements:
|
76
86
|
- - ! '>='
|
77
87
|
- !ruby/object:Gem::Version
|
@@ -79,6 +89,7 @@ dependencies:
|
|
79
89
|
type: :runtime
|
80
90
|
prerelease: false
|
81
91
|
version_requirements: !ruby/object:Gem::Requirement
|
92
|
+
none: false
|
82
93
|
requirements:
|
83
94
|
- - ! '>='
|
84
95
|
- !ruby/object:Gem::Version
|
@@ -86,6 +97,7 @@ dependencies:
|
|
86
97
|
- !ruby/object:Gem::Dependency
|
87
98
|
name: em-http-request
|
88
99
|
requirement: !ruby/object:Gem::Requirement
|
100
|
+
none: false
|
89
101
|
requirements:
|
90
102
|
- - ! '>='
|
91
103
|
- !ruby/object:Gem::Version
|
@@ -93,6 +105,7 @@ dependencies:
|
|
93
105
|
type: :runtime
|
94
106
|
prerelease: false
|
95
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
none: false
|
96
109
|
requirements:
|
97
110
|
- - ! '>='
|
98
111
|
- !ruby/object:Gem::Version
|
@@ -100,6 +113,7 @@ dependencies:
|
|
100
113
|
- !ruby/object:Gem::Dependency
|
101
114
|
name: json
|
102
115
|
requirement: !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
103
117
|
requirements:
|
104
118
|
- - ! '>='
|
105
119
|
- !ruby/object:Gem::Version
|
@@ -107,6 +121,7 @@ dependencies:
|
|
107
121
|
type: :runtime
|
108
122
|
prerelease: false
|
109
123
|
version_requirements: !ruby/object:Gem::Requirement
|
124
|
+
none: false
|
110
125
|
requirements:
|
111
126
|
- - ! '>='
|
112
127
|
- !ruby/object:Gem::Version
|
@@ -114,6 +129,7 @@ dependencies:
|
|
114
129
|
- !ruby/object:Gem::Dependency
|
115
130
|
name: rspec
|
116
131
|
requirement: !ruby/object:Gem::Requirement
|
132
|
+
none: false
|
117
133
|
requirements:
|
118
134
|
- - ! '>='
|
119
135
|
- !ruby/object:Gem::Version
|
@@ -121,6 +137,7 @@ dependencies:
|
|
121
137
|
type: :development
|
122
138
|
prerelease: false
|
123
139
|
version_requirements: !ruby/object:Gem::Requirement
|
140
|
+
none: false
|
124
141
|
requirements:
|
125
142
|
- - ! '>='
|
126
143
|
- !ruby/object:Gem::Version
|
@@ -128,6 +145,7 @@ dependencies:
|
|
128
145
|
- !ruby/object:Gem::Dependency
|
129
146
|
name: webmock
|
130
147
|
requirement: !ruby/object:Gem::Requirement
|
148
|
+
none: false
|
131
149
|
requirements:
|
132
150
|
- - ! '>='
|
133
151
|
- !ruby/object:Gem::Version
|
@@ -135,6 +153,7 @@ dependencies:
|
|
135
153
|
type: :development
|
136
154
|
prerelease: false
|
137
155
|
version_requirements: !ruby/object:Gem::Requirement
|
156
|
+
none: false
|
138
157
|
requirements:
|
139
158
|
- - ! '>='
|
140
159
|
- !ruby/object:Gem::Version
|
@@ -142,6 +161,7 @@ dependencies:
|
|
142
161
|
- !ruby/object:Gem::Dependency
|
143
162
|
name: guard-rspec
|
144
163
|
requirement: !ruby/object:Gem::Requirement
|
164
|
+
none: false
|
145
165
|
requirements:
|
146
166
|
- - ! '>='
|
147
167
|
- !ruby/object:Gem::Version
|
@@ -149,6 +169,7 @@ dependencies:
|
|
149
169
|
type: :development
|
150
170
|
prerelease: false
|
151
171
|
version_requirements: !ruby/object:Gem::Requirement
|
172
|
+
none: false
|
152
173
|
requirements:
|
153
174
|
- - ! '>='
|
154
175
|
- !ruby/object:Gem::Version
|
@@ -156,6 +177,7 @@ dependencies:
|
|
156
177
|
- !ruby/object:Gem::Dependency
|
157
178
|
name: guard-bundler
|
158
179
|
requirement: !ruby/object:Gem::Requirement
|
180
|
+
none: false
|
159
181
|
requirements:
|
160
182
|
- - ! '>='
|
161
183
|
- !ruby/object:Gem::Version
|
@@ -163,6 +185,7 @@ dependencies:
|
|
163
185
|
type: :development
|
164
186
|
prerelease: false
|
165
187
|
version_requirements: !ruby/object:Gem::Requirement
|
188
|
+
none: false
|
166
189
|
requirements:
|
167
190
|
- - ! '>='
|
168
191
|
- !ruby/object:Gem::Version
|
@@ -170,6 +193,7 @@ dependencies:
|
|
170
193
|
- !ruby/object:Gem::Dependency
|
171
194
|
name: guard-coffeescript
|
172
195
|
requirement: !ruby/object:Gem::Requirement
|
196
|
+
none: false
|
173
197
|
requirements:
|
174
198
|
- - ! '>='
|
175
199
|
- !ruby/object:Gem::Version
|
@@ -177,6 +201,7 @@ dependencies:
|
|
177
201
|
type: :development
|
178
202
|
prerelease: false
|
179
203
|
version_requirements: !ruby/object:Gem::Requirement
|
204
|
+
none: false
|
180
205
|
requirements:
|
181
206
|
- - ! '>='
|
182
207
|
- !ruby/object:Gem::Version
|
@@ -184,6 +209,7 @@ dependencies:
|
|
184
209
|
- !ruby/object:Gem::Dependency
|
185
210
|
name: rainbows
|
186
211
|
requirement: !ruby/object:Gem::Requirement
|
212
|
+
none: false
|
187
213
|
requirements:
|
188
214
|
- - ~>
|
189
215
|
- !ruby/object:Gem::Version
|
@@ -191,6 +217,7 @@ dependencies:
|
|
191
217
|
type: :development
|
192
218
|
prerelease: false
|
193
219
|
version_requirements: !ruby/object:Gem::Requirement
|
220
|
+
none: false
|
194
221
|
requirements:
|
195
222
|
- - ~>
|
196
223
|
- !ruby/object:Gem::Version
|
@@ -198,6 +225,7 @@ dependencies:
|
|
198
225
|
- !ruby/object:Gem::Dependency
|
199
226
|
name: thin
|
200
227
|
requirement: !ruby/object:Gem::Requirement
|
228
|
+
none: false
|
201
229
|
requirements:
|
202
230
|
- - ! '>='
|
203
231
|
- !ruby/object:Gem::Version
|
@@ -205,6 +233,7 @@ dependencies:
|
|
205
233
|
type: :development
|
206
234
|
prerelease: false
|
207
235
|
version_requirements: !ruby/object:Gem::Requirement
|
236
|
+
none: false
|
208
237
|
requirements:
|
209
238
|
- - ! '>='
|
210
239
|
- !ruby/object:Gem::Version
|
@@ -212,6 +241,7 @@ dependencies:
|
|
212
241
|
- !ruby/object:Gem::Dependency
|
213
242
|
name: rack-test
|
214
243
|
requirement: !ruby/object:Gem::Requirement
|
244
|
+
none: false
|
215
245
|
requirements:
|
216
246
|
- - ! '>='
|
217
247
|
- !ruby/object:Gem::Version
|
@@ -219,6 +249,7 @@ dependencies:
|
|
219
249
|
type: :development
|
220
250
|
prerelease: false
|
221
251
|
version_requirements: !ruby/object:Gem::Requirement
|
252
|
+
none: false
|
222
253
|
requirements:
|
223
254
|
- - ! '>='
|
224
255
|
- !ruby/object:Gem::Version
|
@@ -226,6 +257,7 @@ dependencies:
|
|
226
257
|
- !ruby/object:Gem::Dependency
|
227
258
|
name: async_rack_test
|
228
259
|
requirement: !ruby/object:Gem::Requirement
|
260
|
+
none: false
|
229
261
|
requirements:
|
230
262
|
- - ! '>='
|
231
263
|
- !ruby/object:Gem::Version
|
@@ -233,6 +265,7 @@ dependencies:
|
|
233
265
|
type: :development
|
234
266
|
prerelease: false
|
235
267
|
version_requirements: !ruby/object:Gem::Requirement
|
268
|
+
none: false
|
236
269
|
requirements:
|
237
270
|
- - ! '>='
|
238
271
|
- !ruby/object:Gem::Version
|
@@ -240,6 +273,7 @@ dependencies:
|
|
240
273
|
- !ruby/object:Gem::Dependency
|
241
274
|
name: foreman
|
242
275
|
requirement: !ruby/object:Gem::Requirement
|
276
|
+
none: false
|
243
277
|
requirements:
|
244
278
|
- - ! '>='
|
245
279
|
- !ruby/object:Gem::Version
|
@@ -247,6 +281,7 @@ dependencies:
|
|
247
281
|
type: :development
|
248
282
|
prerelease: false
|
249
283
|
version_requirements: !ruby/object:Gem::Requirement
|
284
|
+
none: false
|
250
285
|
requirements:
|
251
286
|
- - ! '>='
|
252
287
|
- !ruby/object:Gem::Version
|
@@ -254,6 +289,7 @@ dependencies:
|
|
254
289
|
- !ruby/object:Gem::Dependency
|
255
290
|
name: sprockets
|
256
291
|
requirement: !ruby/object:Gem::Requirement
|
292
|
+
none: false
|
257
293
|
requirements:
|
258
294
|
- - ! '>='
|
259
295
|
- !ruby/object:Gem::Version
|
@@ -261,6 +297,7 @@ dependencies:
|
|
261
297
|
type: :development
|
262
298
|
prerelease: false
|
263
299
|
version_requirements: !ruby/object:Gem::Requirement
|
300
|
+
none: false
|
264
301
|
requirements:
|
265
302
|
- - ! '>='
|
266
303
|
- !ruby/object:Gem::Version
|
@@ -268,6 +305,7 @@ dependencies:
|
|
268
305
|
- !ruby/object:Gem::Dependency
|
269
306
|
name: rake
|
270
307
|
requirement: !ruby/object:Gem::Requirement
|
308
|
+
none: false
|
271
309
|
requirements:
|
272
310
|
- - ! '>='
|
273
311
|
- !ruby/object:Gem::Version
|
@@ -275,6 +313,7 @@ dependencies:
|
|
275
313
|
type: :development
|
276
314
|
prerelease: false
|
277
315
|
version_requirements: !ruby/object:Gem::Requirement
|
316
|
+
none: false
|
278
317
|
requirements:
|
279
318
|
- - ! '>='
|
280
319
|
- !ruby/object:Gem::Version
|
@@ -352,26 +391,27 @@ files:
|
|
352
391
|
- spec/spec_helper.rb
|
353
392
|
homepage: http://firehose.io/
|
354
393
|
licenses: []
|
355
|
-
metadata: {}
|
356
394
|
post_install_message:
|
357
395
|
rdoc_options: []
|
358
396
|
require_paths:
|
359
397
|
- lib
|
360
398
|
required_ruby_version: !ruby/object:Gem::Requirement
|
399
|
+
none: false
|
361
400
|
requirements:
|
362
401
|
- - ! '>='
|
363
402
|
- !ruby/object:Gem::Version
|
364
403
|
version: '0'
|
365
404
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
405
|
+
none: false
|
366
406
|
requirements:
|
367
407
|
- - ! '>='
|
368
408
|
- !ruby/object:Gem::Version
|
369
409
|
version: '0'
|
370
410
|
requirements: []
|
371
411
|
rubyforge_project: firehose
|
372
|
-
rubygems_version:
|
412
|
+
rubygems_version: 1.8.23
|
373
413
|
signing_key:
|
374
|
-
specification_version:
|
414
|
+
specification_version: 3
|
375
415
|
summary: Build realtime Ruby web applications
|
376
416
|
test_files:
|
377
417
|
- spec/integrations/integration_test_helper.rb
|
checksums.yaml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
!binary "U0hBMQ==":
|
3
|
-
metadata.gz: !binary |-
|
4
|
-
YWRhZjRhMzQ1ZGUxYjA1YmFlMmViN2RkNmIyOGNlNWZhNjZhMTY5NA==
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
YTFiNjQ2MzcxMTBkMjc4OWJjMzRjYTViM2JkYjI2N2RhYzNhNWZlNQ==
|
7
|
-
!binary "U0hBNTEy":
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
YTFiOTdiMDU4Yjc5NTZiMThhN2M5ZTZhMjc4ZTdiMmNkOTg3NzRmN2QxYmEx
|
10
|
-
NTkxOTEyOGJhZWZjMGU5YzAyYmNlZDY2ZGEzYjVhN2I2NTllMWQ3MjBhZWYx
|
11
|
-
OTVhZWJiNTExNDFlN2Y3MGM2YWQxZTUwMGRiN2QxYzViMmQ4MGQ=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
OTA4Njk1MWUyMDE1ZTA4M2NiZmZiMzEzNTAwOGMyMzg2NGY1NTgyZTBlYmY0
|
14
|
-
ZGEwZDZjZjViMjM4NDgxMzIxNjE5YjRiNjQ4MTMwMDYyMTdjYzNlNjJjMmZi
|
15
|
-
YjcxMDYyZGZhOThiZWRhOGU5Njk5YzEyODI2NWQ0Y2EzY2I4N2M=
|