Browse files

Use xhr for sending with eventsource connections.

  • Loading branch information...
1 parent c03955c commit 95366273731c5b05927053bc781624ebb06b1cb7 @jdavisp3 jdavisp3 committed Jun 22, 2013
Showing with 32 additions and 29 deletions.
  1. +32 −29 priv/bullet.js
View
61 priv/bullet.js
@@ -38,6 +38,36 @@
var CLOSING = 2;
var CLOSED = 3;
+ var xhrSend = function(data){
+ /**
+ Send a message using ajax. Used for both the
+ eventsource and xhrPolling transports.
+ */
+ if (this.readyState != CONNECTING && this.readyState != OPEN){
+ return false;
+ }
+
+ var sendUrl = url.replace('ws:', 'http:').replace('wss:', 'https:');
+
+ $.ajax({
+ async: false,
+ cache: false,
+ type: 'POST',
+ url: sendUrl,
+ data: data,
+ dataType: 'text',
+ contentType: 'application/x-www-form-urlencoded; charset=utf-8',
+ headers: {'X-Socket-Transport': 'xhrPolling'},
+ success: function(data){
+ if (data.length !== 0){
+ fake.onmessage({'data': data});
+ }
+ }
+ });
+
+ return true;
+ };
+
var transports = {
/**
The websocket transport is disabled for Firefox 6.0 because it
@@ -96,9 +126,7 @@
var fake = {
readyState: CONNECTING,
- send: function(data){
- return false; // fallback to another method instead?
- },
+ send: xhrSend,
close: function(){
fake.readyState = CLOSED;
source.close();
@@ -120,32 +148,7 @@
var fake = {
readyState: CONNECTING,
- send: function(data){
- if (this.readyState != CONNECTING && this.readyState != OPEN){
- return false;
- }
-
- var fakeurl = url.replace('ws:', 'http:').replace('wss:', 'https:');
-
- $.ajax({
- async: false,
- cache: false,
- type: 'POST',
- url: fakeurl,
- data: data,
- dataType: 'text',
- contentType:
- 'application/x-www-form-urlencoded; charset=utf-8',
- headers: {'X-Socket-Transport': 'xhrPolling'},
- success: function(data){
- if (data.length !== 0){
- fake.onmessage({'data': data});
- }
- }
- });
-
- return true;
- },
+ send: xhrSend,
close: function(){
this.readyState = CLOSED;
if (xhr){

0 comments on commit 9536627

Please sign in to comment.