message_bus 3.3.6 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.eslintrc.js +3 -2
- data/.github/workflows/ci.yml +79 -32
- data/.prettierrc +1 -0
- data/CHANGELOG +104 -53
- data/DEV.md +0 -2
- data/Gemfile +0 -27
- data/LICENSE +1 -1
- data/README.md +40 -62
- data/Rakefile +31 -26
- data/assets/message-bus-ajax.js +3 -3
- data/bench/codecs/marshal.rb +1 -1
- data/bench/codecs/packed_string.rb +1 -1
- data/docker-compose.yml +1 -1
- data/examples/bench/bench.lua +2 -2
- data/lib/message_bus/backends/base.rb +8 -3
- data/lib/message_bus/backends/memory.rb +6 -0
- data/lib/message_bus/backends/postgres.rb +29 -16
- data/lib/message_bus/backends/redis.rb +11 -2
- data/lib/message_bus/client.rb +6 -7
- data/lib/message_bus/connection_manager.rb +1 -1
- data/lib/message_bus/distributed_cache.rb +3 -1
- data/lib/message_bus/http_client.rb +2 -2
- data/lib/message_bus/rack/middleware.rb +6 -6
- data/lib/message_bus/rack/thin_ext.rb +2 -1
- data/lib/message_bus/version.rb +1 -1
- data/lib/message_bus.rb +47 -77
- data/message_bus.gemspec +21 -3
- data/package-lock.json +1575 -23
- data/package.json +9 -7
- data/spec/assets/SpecHelper.js +6 -5
- data/spec/assets/message-bus.spec.js +9 -6
- data/spec/helpers.rb +23 -7
- data/spec/integration/http_client_spec.rb +1 -1
- data/spec/lib/fake_async_middleware.rb +1 -0
- data/spec/lib/message_bus/backend_spec.rb +15 -46
- data/spec/lib/message_bus/client_spec.rb +7 -6
- data/spec/lib/message_bus/connection_manager_spec.rb +4 -0
- data/spec/lib/message_bus/distributed_cache_spec.rb +5 -7
- data/spec/lib/message_bus/multi_process_spec.rb +21 -10
- data/spec/lib/message_bus/rack/middleware_spec.rb +8 -44
- data/spec/lib/message_bus/timer_thread_spec.rb +1 -5
- data/spec/lib/message_bus_spec.rb +22 -9
- data/spec/performance/publish.rb +4 -4
- data/spec/spec_helper.rb +8 -9
- data/spec/support/jasmine-browser.json +16 -0
- data/vendor/assets/javascripts/message-bus-ajax.js +3 -3
- metadata +220 -19
- data/assets/application.jsx +0 -121
- data/assets/babel.min.js +0 -25
- data/assets/react-dom.js +0 -19851
- data/assets/react.js +0 -3029
- data/examples/diagnostics/Gemfile +0 -6
- data/examples/diagnostics/config.ru +0 -22
- data/lib/message_bus/diagnostics.rb +0 -62
- data/lib/message_bus/rack/diagnostics.rb +0 -98
- data/spec/assets/support/jasmine.yml +0 -126
- data/spec/assets/support/jasmine_helper.rb +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 65630299cab9aae5df5b4f3131043d42063575978d5a83e9267436bed2b7d729
|
4
|
+
data.tar.gz: 2bd69d120552b01ae82c73a775d065c23575ac623016d2bd2ac25a5ebd637d6f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 65a5d250126fc935053dfffef037baaf780678764ac95e4924603b901016f82b451a79a51f18fc699f2cfd8006cb805cd4887d206c12ca68ac68f059f1f13409
|
7
|
+
data.tar.gz: 2ebcc465985827a16866a948690a7bb4c03252050c8bfb1ee458809c6f0eda8c8fd581ba2f9bb1b496d3c7952456a11ad6ac51dd63e69c465238cffa17d7c2da
|
data/.eslintrc.js
CHANGED
@@ -4,10 +4,11 @@ module.exports = {
|
|
4
4
|
browser: true,
|
5
5
|
es2021: false,
|
6
6
|
},
|
7
|
-
extends:
|
7
|
+
extends: 'eslint:recommended',
|
8
8
|
parserOptions: {
|
9
9
|
ecmaVersion: 2015,
|
10
|
-
sourceType:
|
10
|
+
sourceType: 'module',
|
11
11
|
},
|
12
12
|
rules: {},
|
13
|
+
ignorePatterns: ['/vendor', '/doc', '/assets/jquery-1.8.2.js'],
|
13
14
|
};
|
data/.github/workflows/ci.yml
CHANGED
@@ -1,54 +1,101 @@
|
|
1
|
-
name:
|
1
|
+
name: CI
|
2
2
|
|
3
3
|
on:
|
4
|
-
pull_request:
|
5
4
|
push:
|
6
5
|
branches:
|
7
|
-
-
|
8
|
-
|
9
|
-
env:
|
10
|
-
PGHOST: localhost
|
11
|
-
PGPORT: 5432
|
12
|
-
PGPASSWORD: postgres
|
13
|
-
PGUSER: postgres
|
6
|
+
- main
|
7
|
+
pull_request:
|
14
8
|
|
15
9
|
jobs:
|
16
10
|
build:
|
17
11
|
runs-on: ubuntu-latest
|
18
|
-
name: Ruby ${{ matrix.ruby }}
|
12
|
+
name: Ruby ${{ matrix.ruby }} (redis ${{ matrix.redis }})
|
13
|
+
timeout-minutes: 10
|
14
|
+
|
15
|
+
env:
|
16
|
+
PGHOST: localhost
|
17
|
+
PGPASSWORD: postgres
|
18
|
+
PGUSER: postgres
|
19
|
+
|
20
|
+
strategy:
|
21
|
+
fail-fast: false
|
22
|
+
matrix:
|
23
|
+
ruby: [2.6, 2.7, 3.0]
|
24
|
+
redis: [5, 6]
|
25
|
+
|
19
26
|
services:
|
20
27
|
postgres:
|
21
|
-
image: postgres:
|
28
|
+
image: postgres:14
|
22
29
|
env:
|
30
|
+
POSTGRES_DB: message_bus_test
|
23
31
|
POSTGRES_PASSWORD: postgres
|
24
32
|
ports:
|
25
33
|
- 5432:5432
|
26
34
|
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
|
27
|
-
|
28
|
-
|
29
|
-
|
35
|
+
redis:
|
36
|
+
image: ${{ format('redis:{0}', matrix.redis) }}
|
37
|
+
ports:
|
38
|
+
- 6379:6379
|
39
|
+
options: >-
|
40
|
+
--health-cmd "redis-cli ping"
|
41
|
+
--health-interval 10s
|
42
|
+
--health-timeout 5s
|
43
|
+
--health-retries 5
|
44
|
+
|
30
45
|
steps:
|
31
46
|
- uses: actions/checkout@v2
|
32
|
-
|
47
|
+
|
48
|
+
- uses: ruby/setup-ruby@v1
|
33
49
|
with:
|
34
50
|
ruby-version: ${{ matrix.ruby }}
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
key: ${{ runner.os }}-${{ matrix.ruby }}-gems-${{ hashFiles('**/Gemfile.lock') }}
|
40
|
-
restore-keys: |
|
41
|
-
${{ runner.os }}-${{ matrix.ruby }}-gems-
|
42
|
-
- name: Create Database
|
43
|
-
run: |
|
44
|
-
createdb message_bus_test
|
45
|
-
- name: Setup redis
|
46
|
-
uses: shogo82148/actions-setup-redis@v1
|
51
|
+
bundler-cache: true
|
52
|
+
|
53
|
+
- name: Set up Node.js
|
54
|
+
uses: actions/setup-node@v2
|
47
55
|
with:
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
56
|
+
node-version: 16
|
57
|
+
cache: npm
|
58
|
+
|
59
|
+
- name: Setup npm
|
60
|
+
run: npm install
|
61
|
+
|
53
62
|
- name: Tests
|
63
|
+
env:
|
64
|
+
TESTOPTS: --verbose
|
54
65
|
run: bundle exec rake
|
66
|
+
timeout-minutes: 3
|
67
|
+
|
68
|
+
- name: Linting
|
69
|
+
run: npx eslint .
|
70
|
+
|
71
|
+
publish:
|
72
|
+
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
|
73
|
+
needs: build
|
74
|
+
runs-on: ubuntu-latest
|
75
|
+
|
76
|
+
steps:
|
77
|
+
- uses: actions/checkout@v2
|
78
|
+
|
79
|
+
- name: Release gem
|
80
|
+
uses: discourse/publish-rubygems-action@v2
|
81
|
+
id: publish-gem
|
82
|
+
env:
|
83
|
+
RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
|
84
|
+
GIT_EMAIL: team@discourse.org
|
85
|
+
GIT_NAME: discoursebot
|
86
|
+
|
87
|
+
- name: Update package version
|
88
|
+
if: steps.publish-gem.outputs.new_version == 'true'
|
89
|
+
run: |
|
90
|
+
VERSION=$(ruby -r './lib/message_bus/version' -e 'puts MessageBus::VERSION')
|
91
|
+
sed -i "s/0.0.0-version-placeholder/$VERSION/" package.json
|
92
|
+
git config --global user.email "ci@ci.invalid"
|
93
|
+
git config --global user.name "Discourse CI"
|
94
|
+
git add package.json
|
95
|
+
git commit -m 'bump'
|
96
|
+
|
97
|
+
- name: Publish package
|
98
|
+
uses: JS-DevTools/npm-publish@v1
|
99
|
+
if: steps.publish-gem.outputs.new_version == 'true'
|
100
|
+
with:
|
101
|
+
token: ${{ secrets.NPM_TOKEN }}
|
data/.prettierrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{}
|
data/CHANGELOG
CHANGED
@@ -1,10 +1,39 @@
|
|
1
|
+
11-01-2022
|
2
|
+
|
3
|
+
- Version 4.0.0
|
4
|
+
|
5
|
+
- DEV: Remove backend diagnostics
|
6
|
+
- DEV: Rename reliable_pub_sub to backend_instance
|
7
|
+
- FIX: `destroy` following `after_fork` could thread lock
|
8
|
+
|
9
|
+
31-12-2021
|
10
|
+
|
11
|
+
- Version 3.4.0
|
12
|
+
|
13
|
+
- FEATURE: Remove process auto-termination on missed keepalives
|
14
|
+
|
15
|
+
20-12-2021
|
16
|
+
|
17
|
+
- Version 3.3.8
|
18
|
+
|
19
|
+
- FIX: Restore dist js files to fix a regression in 3.3.7
|
20
|
+
- FIX: Stop various thread/pg connection leaks
|
21
|
+
- DEV: Fix ruby warnings
|
22
|
+
|
23
|
+
15-12-2021
|
24
|
+
|
25
|
+
- Version 3.3.7
|
26
|
+
|
27
|
+
- FIX: Prevent simple polling from clobbering the session
|
28
|
+
- SECURITY: Fix path traversal on diagnostics route.
|
29
|
+
|
1
30
|
31-05-2021
|
2
31
|
|
3
32
|
- Version 3.3.6
|
4
33
|
|
5
34
|
- FEATURE: Introduce support for transport codecs
|
6
35
|
- FIX: event subscription leak in JS after start/stop/start sequence
|
7
|
-
- FEATURE: MessageBus.onVisibilityChange() can be used to trigger a
|
36
|
+
- FEATURE: MessageBus.onVisibilityChange() can be used to trigger a visibility change check by hand
|
8
37
|
|
9
38
|
28-04-2021
|
10
39
|
|
@@ -56,14 +85,14 @@
|
|
56
85
|
|
57
86
|
- Version 3.3.0
|
58
87
|
|
59
|
-
|
88
|
+
- FEATURE: `MessageBus.base_route=` to alter the route that message bus will listen on.
|
60
89
|
|
61
90
|
07-05-2020
|
62
91
|
|
63
92
|
- Version 3.2.0
|
64
93
|
|
65
|
-
|
66
|
-
|
94
|
+
- FIX: compatibility with Rails 6.0.3, note: apps without ActionDispatch::Flash may stop working after this upgrade
|
95
|
+
to correct this disable middleware injection with `config.skip_message_bus_middleware = true` and configure middleware by hand with `app.middleware.use(MessageBus::Rack::Middleware)`
|
67
96
|
|
68
97
|
28-04-2020
|
69
98
|
|
@@ -98,7 +127,6 @@
|
|
98
127
|
|
99
128
|
- FIX: In the redis backend make the `is_readonly?` method compatible with the redis gem both pre and post v4.0 when the `client` attribute was removed
|
100
129
|
|
101
|
-
|
102
130
|
30-04-2019
|
103
131
|
|
104
132
|
- Version 2.2.1
|
@@ -129,7 +157,7 @@
|
|
129
157
|
- Version 2.2.0.pre
|
130
158
|
|
131
159
|
- FIX: In redis backend we now expire the key used to track channel id this can cause a redis key leak
|
132
|
-
|
160
|
+
with large amounts of subscriptions that go away
|
133
161
|
- FEATURE: Much extra implementation documentation, and some improvements to usage documentation.
|
134
162
|
- FEATURE: Improvements to development workflow:
|
135
163
|
- Fully docker-based development and testing, with no other dependencies.
|
@@ -146,50 +174,53 @@
|
|
146
174
|
- Supports setting backlog size on publication for memory/postgres
|
147
175
|
- FEATURE: `MessageBus.off` now prevents the server subscription from starting up.
|
148
176
|
- FEATURE: Trims unused parts of the public API:
|
177
|
+
|
149
178
|
- Methods removed:
|
150
|
-
|
151
|
-
|
179
|
+
|
180
|
+
- ConnectionManager#stats (never used and the ConnectionManager is not exposed to application code)
|
181
|
+
- Client#cancel (effectively duplicate of Client#close and the Client is only available via the ConnectionManager, thus not available to application code)
|
152
182
|
|
153
183
|
- Methods made private:
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
184
|
+
|
185
|
+
- MessageBus::Implementation#encode_channel_name
|
186
|
+
- MessageBus::Implementation#decode_channel_name
|
187
|
+
- Client#in_async?
|
188
|
+
- Client#ensure_closed!
|
189
|
+
- ConnectionManager#subscribe_client
|
190
|
+
- Diagnostics.full_process_path
|
191
|
+
- Diagnostics.hostname
|
192
|
+
- MessageBus::Rack::Diagnostics#js_asset
|
193
|
+
- MessageBus::Rack::Diagnostics#generate_script_tag
|
194
|
+
- MessageBus::Rack::Diagnostics#file_hash
|
195
|
+
- MessageBus::Rack::Diagnostics#asset_contents
|
196
|
+
- MessageBus::Rack::Diagnostics#asset_path
|
197
|
+
- MessageBus::Rack::Diagnostics#index
|
198
|
+
- MessageBus::Rack::Diagnostics#translate_handlebars
|
199
|
+
- MessageBus::Rack::Diagnostics#indent
|
200
|
+
- MessageBus::Rack::Middleware#start_listener
|
201
|
+
- MessageBus::Rack::Middleware#close_db_connection!
|
202
|
+
- MessageBus::Rack::Middleware#add_client_with_timeout
|
172
203
|
|
173
204
|
- Methods switched from protected to private:
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
205
|
+
- MessageBus::Implementation#global?
|
206
|
+
- MessageBus::Implementation#decode_message!
|
207
|
+
- MessageBus::Implementation#replay_backlog
|
208
|
+
- MessageBus::Implementation#subscribe_impl
|
209
|
+
- MessageBus::Implementation#unsubscribe_impl
|
210
|
+
- MessageBus::Implementation#ensure_subscriber_thread
|
211
|
+
- MessageBus::Implementation#new_subscriber_thread
|
212
|
+
- MessageBus::Implementation#global_subscribe_thread
|
213
|
+
- MessageBus::Implementation#multi_each
|
214
|
+
- Client#write_headers
|
215
|
+
- Client#write_chunk
|
216
|
+
- Client#write_and_close
|
217
|
+
- Client#messages_to_json
|
187
218
|
|
188
219
|
15-10-2018
|
189
220
|
|
190
221
|
- Version 2.1.6
|
191
222
|
|
192
|
-
- FEATURE: `
|
223
|
+
- FEATURE: `MessageBus.publish` accepts option `site_id` to publish to a site
|
193
224
|
- FEATURE: Added MessageBus::DistributedCache for cross process caching
|
194
225
|
- PERF: Use monotonic times in timer thread
|
195
226
|
- FEATURE: min poll interval is now configurable client side
|
@@ -212,7 +243,7 @@
|
|
212
243
|
- Version 2.1.2
|
213
244
|
|
214
245
|
- FEATURE: minHiddenPollInterval set to 1500ms out of the box, ensures we never do hidden tab
|
215
|
-
|
246
|
+
polls at a high rate if tons of tabs are open
|
216
247
|
- FEATURE: added random 500ms to delayed polls to increase tab entropy
|
217
248
|
|
218
249
|
18-12-2017
|
@@ -226,7 +257,7 @@
|
|
226
257
|
- Version 2.1.0
|
227
258
|
|
228
259
|
- FEATURE: you can now lookup last N messages on channel on subscribe from JavaScript
|
229
|
-
|
260
|
+
Subscribe at position (-1 - numberOfMessages) from the client
|
230
261
|
|
231
262
|
24-11-2017
|
232
263
|
|
@@ -246,14 +277,13 @@
|
|
246
277
|
- Version 2.0.7
|
247
278
|
|
248
279
|
- Fix/Feature: use LUA script for publishing to bus, this eliminates a race condition
|
249
|
-
|
250
|
-
|
280
|
+
and ensures that we are never stuck in a multi transaction by mistake
|
251
281
|
|
252
282
|
29-09-2017
|
253
283
|
|
254
284
|
- Version 2.0.6
|
255
285
|
|
256
|
-
- Fix: correct after_fork so it correctly
|
286
|
+
- Fix: correct after_fork so it correctly disconnects redis
|
257
287
|
- Fix: correct message_bus #destroy used in tests to clean up spec (deadlock)
|
258
288
|
- Fix: deliver backlog unconditionally when polling (and not long polling)
|
259
289
|
|
@@ -275,12 +305,10 @@
|
|
275
305
|
- Version 2.0.2
|
276
306
|
- Feature: Add on_middleware_error callback for remapping middleware errors to HTTP results
|
277
307
|
|
278
|
-
|
279
308
|
25-07-2016
|
280
309
|
|
281
310
|
- Feature: Add JavaScript MessageBus.status() function
|
282
311
|
|
283
|
-
|
284
312
|
21-06-2016
|
285
313
|
|
286
314
|
- Version 2.0.1
|
@@ -323,7 +351,7 @@
|
|
323
351
|
|
324
352
|
- Version 2.0.0.beta.6
|
325
353
|
|
326
|
-
- Feature: Support standalone
|
354
|
+
- Feature: Support standalone operation without depending on jQuery @nathanstitt
|
327
355
|
- Feature: Support a noconflict mode @nathanstitt
|
328
356
|
- Feature: Support JSON POST payload @nathanstitt
|
329
357
|
|
@@ -361,97 +389,116 @@
|
|
361
389
|
|
362
390
|
- Version 1.1.1
|
363
391
|
- Fix: In multisite config there was no way to specify site for last_id or backlog
|
364
|
-
|
365
|
-
|
392
|
+
to resolve overrides were added to #last_id and #backlog, MessageBus::Client now
|
393
|
+
uses the new overrides
|
366
394
|
|
367
395
|
07-12-2015
|
368
396
|
|
369
397
|
- Version 1.1.0
|
370
398
|
- Fix: keep track of client sequence on server, abandon old subscribes
|
371
399
|
- Fix: rare concurrency issue when subscribing concurrently
|
372
|
-
-
|
400
|
+
- Feature: remove most jQuery dependency from message-bus.js
|
373
401
|
|
374
402
|
09-07-2015
|
403
|
+
|
375
404
|
- Version 1.0.16
|
376
405
|
- Fix: correct edge cases around keepalive checks on bus
|
377
406
|
|
378
407
|
09-07-2015
|
408
|
+
|
379
409
|
- Version 1.0.15
|
380
410
|
- Feature: MessageBus.reliable_pub_sub.max_backlog_age (in secs) configurable (default to 7 days)
|
381
411
|
- Fix: API for MessageBus.backlog("/bla") was returning global backlog by mistake
|
382
412
|
- Change: Max global backlog size reduced to 2000 elements
|
383
413
|
|
384
414
|
08-06-2015
|
415
|
+
|
385
416
|
- Version 1.0.14
|
386
417
|
- Fix: we can not use Thread#kill best keepalive can do is terminate process cleanly
|
387
418
|
- Feature: you can opt-out of keepalive with MessageBus.keepalive_timeout = 0
|
388
419
|
|
389
420
|
08-06-2015
|
421
|
+
|
390
422
|
- Version 1.0.13
|
391
423
|
- Fix: on global subscribe reconnect replay missed messages
|
392
424
|
- Feature: keepalive tests for global subscribe, catches hung redis connections
|
393
425
|
|
394
426
|
28-05-2015
|
427
|
+
|
395
428
|
- Version 1.0.12
|
396
|
-
- Feature: Support client_id
|
429
|
+
- Feature: Support client_id targeted message
|
397
430
|
|
398
431
|
06-05-2015
|
432
|
+
|
399
433
|
- Version 1.0.11
|
400
434
|
- Fix: race condition in TimerThread
|
401
435
|
|
402
436
|
01-05-2015
|
437
|
+
|
403
438
|
- Version: 1.0.10
|
404
439
|
- Feature: no longer depends on EventMachine (only used for Thin backend)
|
405
|
-
- Feature:
|
440
|
+
- Feature: reliable pub sub will queue messages in memory if redis is readonly, configurable
|
406
441
|
- Fix: if redis is flushed we will continue to deliver messages
|
407
442
|
|
408
443
|
23-03-2015
|
444
|
+
|
409
445
|
- Version 1.0.9
|
410
446
|
- Fix: inherit off StandardError not Exception for all exceptions raised
|
411
447
|
|
412
448
|
20-03-2015
|
449
|
+
|
413
450
|
- Version 1.0.8
|
414
451
|
- Fix: aggressive short polling in background
|
415
452
|
|
416
453
|
16-03-2015
|
454
|
+
|
417
455
|
- Version 1.0.7
|
418
456
|
- Feature: added pause and resume methods
|
419
457
|
|
420
458
|
03-02-2015
|
459
|
+
|
421
460
|
- Version 1.0.6
|
422
461
|
- Fix: global backlog not truncating correctly
|
423
462
|
|
424
463
|
23-09-2014
|
464
|
+
|
425
465
|
- Version 1.0.5
|
426
466
|
- Fix: missing custom headers from long polls
|
427
467
|
|
428
468
|
23-09-2014
|
469
|
+
|
429
470
|
- Version 1.0.4
|
430
471
|
- Change: MessageBus.access_control_allow_origin_lookup to extra_response_headers_lookup
|
431
472
|
|
432
473
|
23-09-2014
|
474
|
+
|
433
475
|
- Version 1.0.3
|
434
476
|
- Change: MessageBus.access_control_allow_origin to MessageBus.access_control_allow_origin_lookup
|
435
477
|
|
436
478
|
23-09-2014
|
479
|
+
|
437
480
|
- Version 1.0.2
|
438
481
|
- Feature: MessageBus.access_control_allow_origin to control origin header
|
439
482
|
|
440
483
|
23-09-2014
|
484
|
+
|
441
485
|
- Version 1.0.1
|
442
486
|
- Feature: $.ajax dependency can be passed in.
|
443
487
|
- Feature: unsubscribe accepts a second param for the function to unsubscribe.
|
444
488
|
|
445
489
|
22-09-2014
|
490
|
+
|
446
491
|
- Version 1.0.0
|
447
492
|
- Feature: add backgroundCallbackInterval - interval to send polls when page is in the background
|
448
493
|
- Feature: issue a long poll as soon as page moves into the foreground
|
449
494
|
|
450
495
|
11-08-2014
|
496
|
+
|
451
497
|
- Version 0.9.5
|
452
498
|
- Fix: release db connection a lot earlier for long polling (rails defer closes)
|
453
499
|
|
454
500
|
13-01-2014
|
501
|
+
|
455
502
|
- Version 0.9.4
|
456
503
|
- Added support for /global/ channel to publish messages across a multisite
|
457
504
|
- Cleaned up test harness so it uses local bus as opposed to global
|
@@ -460,19 +507,23 @@
|
|
460
507
|
- ensure_reactor could say the reactor is running, but it was not, on first call
|
461
508
|
|
462
509
|
06-12-2013
|
510
|
+
|
463
511
|
- Version 0.9.3.2
|
464
512
|
- Fix permissions in gem
|
465
513
|
|
466
514
|
05-12-2013
|
515
|
+
|
467
516
|
- Version 0.9.3.1
|
468
517
|
- Add MessageBus.diagnostics() for diagnosing bus issues client side
|
469
518
|
- Add more robustness to JavaScript, if callbacks used to fail they would halt the chain
|
470
519
|
|
471
520
|
03-12-2013
|
521
|
+
|
472
522
|
- Version 0.9.3
|
473
523
|
- Remove thin dependency
|
474
524
|
- Improve robustness under failure conditions
|
475
525
|
|
476
526
|
30-09-2013
|
527
|
+
|
477
528
|
- Fix failures in Ruby 1.9
|
478
529
|
- Set up rack hijack by default in light of passengers new setting
|
data/DEV.md
CHANGED
data/Gemfile
CHANGED
@@ -3,30 +3,3 @@ source 'https://rubygems.org'
|
|
3
3
|
|
4
4
|
# Specify your gem's dependencies in message_bus.gemspec
|
5
5
|
gemspec
|
6
|
-
|
7
|
-
group :test do
|
8
|
-
gem 'minitest'
|
9
|
-
gem 'minitest-hooks'
|
10
|
-
gem 'minitest-global_expectations'
|
11
|
-
gem 'rake'
|
12
|
-
gem 'http_parser.rb'
|
13
|
-
gem 'thin'
|
14
|
-
gem 'rack-test', require: 'rack/test'
|
15
|
-
gem 'jasmine'
|
16
|
-
gem 'puma'
|
17
|
-
gem 'm'
|
18
|
-
end
|
19
|
-
|
20
|
-
group :test, :development do
|
21
|
-
gem 'byebug'
|
22
|
-
gem 'oj'
|
23
|
-
end
|
24
|
-
|
25
|
-
group :development do
|
26
|
-
gem 'yard'
|
27
|
-
gem 'rubocop-discourse', require: false
|
28
|
-
gem 'rubocop-rspec', require: false
|
29
|
-
end
|
30
|
-
|
31
|
-
gem 'rack'
|
32
|
-
gem 'concurrent-ruby' # for distributed-cache
|
data/LICENSE
CHANGED
@@ -19,4 +19,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
19
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
20
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
21
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|