diff options
author | Loïc Hoguin <[email protected]> | 2014-06-03 12:45:15 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2014-06-03 12:45:15 +0200 |
commit | 999f02f57c75edf7ddb5ed08b667ac6657418422 (patch) | |
tree | fd3cc8eb4918fb585dc82bea895181f66771d80e | |
parent | 2d64d092a5685664a5f69abb65be78cbbb11fe3f (diff) | |
parent | 148b6fe476e35e9e8db448d6dc73d57a3b23e800 (diff) | |
download | bullet-999f02f57c75edf7ddb5ed08b667ac6657418422.tar.gz bullet-999f02f57c75edf7ddb5ed08b667ac6657418422.tar.bz2 bullet-999f02f57c75edf7ddb5ed08b667ac6657418422.zip |
Merge branch 'http_url_syntax' of git://github.com/fgallaire/bullet
-rw-r--r-- | README.md | 5 | ||||
-rw-r--r-- | examples/clock/src/toppage_handler.erl | 17 | ||||
-rw-r--r-- | priv/bullet.js | 19 |
3 files changed, 28 insertions, 13 deletions
@@ -114,9 +114,12 @@ $(document).ready(function(){ }); ``` -Always use the WebSocket (ws:) form for your bullet URLs and Bullet +Use the WebSocket (ws:) form for your bullet URLs and Bullet will change the URL as needed for non-WebSocket transports. +Use the standard (http:) form for your bullet URLs and Bullet +will only try non-WebSocket transports. + The `$.bullet` function takes an optional second 'options' object. The following properties are supported: diff --git a/examples/clock/src/toppage_handler.erl b/examples/clock/src/toppage_handler.erl index 71512d3..be52be2 100644 --- a/examples/clock/src/toppage_handler.erl +++ b/examples/clock/src/toppage_handler.erl @@ -24,6 +24,10 @@ handle(Req, State) -> Current time (best source): <span id=\"time_best\">unknown</span> <span></span><span id=\"status_best\">unknown</span> <button id=\"send_best\">Send Time</button></p> + <p><input type=\"checkbox\" checked=\"yes\" id=\"enable_best_nows\"></input> + Current time (best source non-websocket): <span id=\"time_best_nows\">unknown</span> + <span></span><span id=\"status_best_nows\">unknown</span> + <button id=\"send_best_nows\">Send Time</button></p> <p><input type=\"checkbox\" checked=\"yes\" id=\"enable_websocket\"></input> Current time (websocket only): <span id=\"time_websocket\">unknown</span> <span></span><span id=\"status_websocket\">unknown</span> @@ -44,10 +48,10 @@ handle(Req, State) -> <script type=\"text/javascript\"> // <![CDATA[ $(document).ready(function(){ - var start = function(name, options) { + var start = function(name, url, options) { var bullet; var open = function(){ - bullet = $.bullet('ws://localhost:8080/bullet', options); + bullet = $.bullet(url, options); bullet.onopen = function(){ $('#status_' + name).text('online'); }; @@ -81,12 +85,13 @@ $(document).ready(function(){ }); }; - start('best', {}); - start('websocket', {'disableEventSource': true, + start('best', 'ws://localhost:8080/bullet', {}); + start('best_nows', 'http://localhost:8080/bullet', {}); + start('websocket', 'ws://localhost:8080/bullet', {'disableEventSource': true, 'disableXHRPolling': true}); - start('eventsource', {'disableWebSocket': true, + start('eventsource', 'ws://localhost:8080/bullet', {'disableWebSocket': true, 'disableXHRPolling': true}); - start('polling', {'disableWebSocket': true, + start('polling', 'ws://localhost:8080/bullet', {'disableWebSocket': true, 'disableEventSource': true}); }); // ]]> diff --git a/priv/bullet.js b/priv/bullet.js index 3d32679..a838f93 100644 --- a/priv/bullet.js +++ b/priv/bullet.js @@ -37,6 +37,16 @@ var OPEN = 1; var CLOSING = 2; var CLOSED = 3; + var httpURL = url.replace('ws:', 'http:').replace('wss:', 'https:'); + + if (url == httpURL) { + if (options == undefined) { + var options = {'disableWebSocket': true}; + } + else { + options.disableWebSocket = true; + } + } var xhrSend = function(data){ /** @@ -47,13 +57,12 @@ return false; } - var sendUrl = url.replace('ws:', 'http:').replace('wss:', 'https:'); var self = this; $.ajax({ async: false, cache: false, type: 'POST', - url: sendUrl, + url: httpURL, data: data, dataType: 'text', contentType: 'application/x-www-form-urlencoded; charset=utf-8', @@ -106,8 +115,7 @@ return false; } - var eventsourceURL = url.replace('ws:', 'http:').replace('wss:', 'https:'); - var source = new window.EventSource(eventsourceURL); + var source = new window.EventSource(httpURL); source.onopen = function () { fake.readyState = OPEN; @@ -165,12 +173,11 @@ }; function poll(){ - var fakeurl = url.replace('ws:', 'http:').replace('wss:', 'https:'); xhr = $.ajax({ type: 'GET', cache: false, - url: fakeurl, + url: httpURL, dataType: 'text', data: {}, headers: {'X-Socket-Transport': 'xhrPolling'}, |