<div dir="ltr"><div><br></div>Hi Sam,<div><br></div><div>I suggest you to have a look on Sugarizer Server.</div><div>Features 1) and 2) are already implemented and could be used into several Sugarizer activities (Chat, Paint, Memory, ...). Plus the Sugarizer Server is already include in XSCE, thanks to Tim.</div><div>You could test the implementation here [1] (use 2 browsers to test it) and see more information on Server implementation here [2]. Finally most of the code, based on Web Socket, is here [3][4].</div><div><br></div><div>Best regards from France.</div><div><br></div><div>          Lionel.</div><div><br></div><div>[1] <a href="http://server.sugarizer.org">http://server.sugarizer.org</a></div><div>[2] <a href="https://github.com/llaske/Sugarizer#server">https://github.com/llaske/Sugarizer#server</a></div><div>[3] <a href="https://github.com/llaske/sugarizer/blob/master/server/presence.js">https://github.com/llaske/sugarizer/blob/master/server/presence.js</a></div><div>[4] <a href="https://github.com/llaske/sugarizer/blob/master/lib/sugar-web/presence.js">https://github.com/llaske/sugarizer/blob/master/lib/sugar-web/presence.js</a><br><div class="gmail_extra"><br><div class="gmail_quote">2016-07-24 2:36 GMT+02:00  <span dir="ltr"><<a href="mailto:sugar-devel-request@lists.sugarlabs.org" target="_blank">sugar-devel-request@lists.sugarlabs.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Date: Sun, 24 Jul 2016 10:36:00 +1000<br>
From: sam@sam.today<br>
To: Sugar-dev Devel <<a href="mailto:sugar-devel@lists.sugarlabs.org">sugar-devel@lists.sugarlabs.org</a>>, Abhijit Patel<br>
        <<a href="mailto:abhisandhyasp.ap@gmail.com">abhisandhyasp.ap@gmail.com</a>><br>
Subject: [Sugar-devel] Thoughts on Collab<br>
Message-ID: <<a href="mailto:1469320560.1907.0@smtp.gmail.com">1469320560.1907.0@smtp.gmail.com</a>><br>
Content-Type: text/plain; charset="utf-8"; Format="flowed"<br>
<br>
Hi All,<br>
<br>
In the irc meeting 2 nights ago, we discussed adding collaberation to<br>
the journal project feature.  Abhijit has spent around 3 weeks working<br>
on it.  But we can't even get a text channel between the participants.<br>
Telepathy is painful, buggy (we have a segfault in salut) and hard to<br>
debug.  It is also unmaintained - the last commit to telepathy salut<br>
and gabble was 2 years ago.<br>
<br>
So this is the pre-text for an experiment; modernising the<br>
collaboration stack without using telepathy.<br>
<br>
Initially, I proposed Matrix.Org.  I don't support this idea any more,<br>
as <a href="http://matrix.org" rel="noreferrer" target="_blank">matrix.org</a> has some very messaging specific features, and some spots<br>
where sugar would not fit idiomatically within the api.<br>
<br>
So I have been thinking a little more about splitting up the problem<br>
into 3 sections:<br>
<br>
1)  A neighbourhood view implementation - a model to discover people<br>
nearby or via the school server<br>
2)  A group messaging socket - the backbone for collaboration in<br>
activities<br>
3)  A one-to-one file transfer mechanism - used for initial state sync<br>
in activities, "send to" feature in journal, etc<br>
<br>
I have think that we can do the neighbourhood view by using 2 backends<br>
and merging the result.  We can use the Avahi api to publish/find<br>
activities/buddies on the local network.  We could additionally use a<br>
school server (running a custom sugar server app) to support buddies<br>
who are not on the same network.  Since both activities and buddies<br>
have unique identifiers, we can easily have both back-ends running at<br>
the same time, and de-duplicate the result.<br>
<br>
Avahi is very fun to work with:<br>
<br>
    avahi-publish-service "Sam P" "_org_sugarlabs_collab_user._tcp"<br>
8080 "name=Sam P" "color=#fff,#000" "other_metadata=other_value"<br>
    avahi-discover<br>
<br>
All of the backends could give us an ip and a port to reach the other<br>
person.  For the avahi backend, this would be a direct connection to<br>
the other buddy.  For the schoolserver, it would be proxied through the<br>
schoolserver.<br>
<br>
I'd love to hear your thoughts on the other problems, and on this<br>
problem to.<br>
<br>
Thanks,<br>
Sam<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="http://lists.sugarlabs.org/archive/sugar-devel/attachments/20160724/569b6610/attachment.html" rel="noreferrer" target="_blank">http://lists.sugarlabs.org/archive/sugar-devel/attachments/20160724/569b6610/attachment.html</a>><br>
<br>
------------------------------<br>
<br>
Subject: Digest Footer<br>
<br>
_______________________________________________<br>
Sugar-devel mailing list<br>
<a href="mailto:Sugar-devel@lists.sugarlabs.org">Sugar-devel@lists.sugarlabs.org</a><br>
<a href="http://lists.sugarlabs.org/listinfo/sugar-devel" rel="noreferrer" target="_blank">http://lists.sugarlabs.org/listinfo/sugar-devel</a><br>
<br>
<br>
------------------------------<br>
<br>
End of Sugar-devel Digest, Vol 93, Issue 50<br>
*******************************************<br>
</blockquote></div><br></div></div></div>