diff script2.js @ 9:d3b37bbb2b88 default tip master

Support multiple participants.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Thu, 02 Feb 2012 16:37:28 +0100
parents 7b2ca4d5af6d
children
line wrap: on
line diff
--- a/script2.js
+++ b/script2.js
@@ -261,7 +261,7 @@ var offerState = function(to, type, sid)
   conn.send(message);
 };
 
-var sendState = function(sid) {
+var sendState = function(sid, from) {
   var doc = documents[sid];
   var initialState = doc.createState([]).map(function(element) {
     return Lightstring.DOM2XML(element);
@@ -283,6 +283,8 @@ var sendState = function(sid) {
     conn.send(message);
   } else { // host
     for (var jid in doc.participants) {
+      if (from == jid)
+        continue;
       var type = doc.participants[jid];
       var message = "<message to='" + jid + "'" +
                             " type='" + type + "'>" +
@@ -351,6 +353,8 @@ conn.on('message/' + Lightstring.ns['sxe
       var elements = payload.children;
       doc.empty();
       doc.processState(from, elements);
+      if (doc.host === conn.jid.full)
+        sendState(sid, from);
       break;
     default:
       var elements = sxe.children;