-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi,
I worked on the attached patch for jpoker, to implement sendPacket retry
on various 12xxx xhr error.
Feel free to review & apply it.
Please note that it may affect the ordering of outgoing packets because
additional sendPacket will append instead of prepend packet to the ajax
queue.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAkk6px0ACgkQZmEdV9SHoe553QCeMPZBG7W/5TSbr2JW5oQF29SQ
UqoAnivV9IizD2PdGepsLSko6jJFaqug
=CBOE
-----END PGP SIGNATURE-----
diff -r 9e000a847138 jpoker/js/jquery.jpoker.js
--- a/jpoker/js/jquery.jpoker.js Fri Dec 05 16:08:04 2008 +0000
+++ b/jpoker/js/jquery.jpoker.js Sat Dec 06 12:57:38 2008 +0000
@@ -598,6 +598,7 @@
dequeueFrequency: 100,
pingFrequency: 6000,
timeout: 30000,
+ retryCount: 10,
clearTimeout: function(id) { return window.clearTimeout(id); },
setTimeout: function(cb, delay) { return window.setTimeout(cb,
delay); },
ajax: function(o) { return jQuery.ajax(o); },
@@ -787,7 +788,7 @@
}
},
- sendPacket: function(packet) {
+ sendPacket: function(packet, retry) {
var $this = this;
var json_data = JSON.stringify(packet);
if(jpoker.verbose > 0) {
@@ -813,11 +814,25 @@
$this.setConnectionState('disconnected');
$this.reset();
} else {
- $this.error({ xhr: xhr,
- status: status,
- url: this.url,
- error: error
- });
+ switch (xhr.status) {
+ case 12152:
+ case 12030:
+ case 12031:
+ if (!retry) {
+ retry = 0;
+ }
+ if (retry < $this.retryCount) {
+ $this.sendPacket(packet, ++retry);
+ return;
+ }
+ error = 'retry count exceeded: ' + retry;
+ break;
+ }
+ $this.error({ xhr: xhr,
+ status: status,
+ url: this.url,
+ error: error
+ });
}
}
};
diff -r 9e000a847138 jpoker/js/test-jpoker.js
--- a/jpoker/js/test-jpoker.js Fri Dec 05 16:08:04 2008 +0000
+++ b/jpoker/js/test-jpoker.js Sat Dec 06 12:57:38 2008 +0000
@@ -1965,6 +1965,67 @@
ActiveXObject.defaults.status = 500;
self.sendPacket({type: 'type'});
ActiveXObject.defaults.status = 200;
+ });
+
+test("jpoker.connection:sendPacket retry 12152", function(){
+ expect(1);
+ stop();
+ var self = new jpoker.connection();
+ var sendPacket = self.sendPacket;
+ self.sendPacket = function(packet) {
+ equals(packet.type, 'type', 'retry');
+ start();
+ };
+ ActiveXObject.defaults.status = 12152;
+ sendPacket.apply(self, [{type: 'type'}]);
+ ActiveXObject.defaults.status = 200;
+ });
+
+test("jpoker.connection:sendPacket retry 12030", function(){
+ expect(1);
+ stop();
+ var self = new jpoker.connection();
+ var sendPacket = self.sendPacket;
+ self.sendPacket = function(packet) {
+ equals(packet.type, 'type', 'retry');
+ start();
+ };
+ ActiveXObject.defaults.status = 12030;
+ sendPacket.apply(self, [{type: 'type'}]);
+ ActiveXObject.defaults.status = 200;
+ });
+
+test("jpoker.connection:sendPacket retry 12031", function(){
+ expect(1);
+ stop();
+ var self = new jpoker.connection();
+ var sendPacket = self.sendPacket;
+ self.sendPacket = function(packet) {
+ equals(packet.type, 'type', 'retry');
+ start();
+ };
+ ActiveXObject.defaults.status = 12031;
+ sendPacket.apply(self, [{type: 'type'}]);
+ ActiveXObject.defaults.status = 200;
+ });
+
+test("jpoker.connection:sendPacket retry count", function(){
+ expect(3);
+ stop();
+ var self = new jpoker.connection();
+ self.retryCount = 42;
+
+ var error = jpoker.error;
+ jpoker.error = function(reason) {
+ jpoker.error = error;
+ equals(reason.xhr.status, 12031);
+ ok(reason.error.indexOf('retry') >= 0, 'retry error');
+ ok(reason.error.indexOf(self.retryCount) >= 0, 'retryCount');
+ ActiveXObject.defaults.status = 200;
+ start();
+ };
+ ActiveXObject.defaults.status = 12031;
+ self.sendPacket({type: 'type'});
});
test("jpoker.connection:sendPacket timeout", function(){
_______________________________________________
Pokersource-users mailing list
[email protected]
https://mail.gna.org/listinfo/pokersource-users