You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ng...@apache.org on 2010/08/08 13:59:18 UTC
svn commit: r983391 -
/mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/examples/client/client.js
Author: ngn
Date: Sun Aug 8 11:59:18 2010
New Revision: 983391
URL: http://svn.apache.org/viewvc?rev=983391&view=rev
Log:
Fixing presence loop bug (VYSPER-229, by Bogdan Pistol)
Modified:
mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/examples/client/client.js
Modified: mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/examples/client/client.js
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/examples/client/client.js?rev=983391&r1=983390&r2=983391&view=diff
==============================================================================
--- mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/examples/client/client.js (original)
+++ mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/examples/client/client.js Sun Aug 8 11:59:18 2010
@@ -23,7 +23,6 @@ var port;
var jid;
var password;
var connection;
-var subscribeRequests = [];
var isDisconnecting = false;
var connectionStatuses = {};
@@ -60,15 +59,6 @@ $(document).ready(function() {
});
});
-function getSubscribeRequest(jid) {
- for (var i = 0; i < subscribeRequests.length; i++) {
- if (jid === subscribeRequests[i]) {
- return i;
- }
- }
- return -1;
-}
-
function formatTime(val) {
return val < 10 ? "0" + val : val;
}
@@ -217,12 +207,16 @@ function presenceReceived(presence) {
connection.send(pres);
}
} else if (bareFromJid !== jid) {
- $("#roster > div[jid=" + id + "]").text(bareFromJid + " (" + (type === "unavailable" ? "offline" : "online") + ")");
- if (getSubscribeRequest(bareFromJid) === -1) {
- log("Sending presence", $pres().toString());
- connection.send($pres());
- } else {
- subscribeRequests.splice(getSubscribeRequest(bareFromJid), 1);
+ var contact = $("#roster > div[jid=" + id + "]");
+ if (contact.length === 1) {
+ var isOnline = contact.text().match(/.+\(online\)/);
+ if (isOnline && type === "unavailable") {
+ contact.text(bareFromJid + " (offline)");
+ } else if (!isOnline && type !== "unavailable") {
+ contact.text(bareFromJid + " (online)");
+ log("Sending presence", $pres().toString());
+ connection.send($pres());
+ }
}
}
return true;
@@ -243,7 +237,6 @@ function addContact() {
return;
}
$("#roster").append("<div jid='" + jid2id(toJid) + "'>" + toJid + " (offline)</div>");
- subscribeRequests.push(toJid);
var pres = $pres({to: toJid, type: "subscribe"});
log("Requesting subscribe to " + toJid, pres.toString());
connection.send(pres);