<div dir="ltr">Thanks for the tips. I will try to rewrite my class as region module. While this requires more work, it looks like a good long-term time investment. The problem with libopenmetaverse is that I am not planning to use UDP for my work. But it certainly can be a good reference for experiences code readers :-). It's just that I was missing some kind of overview (even just for a sample of messages) when starting and so created one myself.</div>

<div class="gmail_extra"><br clear="all"><div><br>Sergiy</div>
<br><br><div class="gmail_quote">On Sat, Apr 20, 2013 at 9:55 PM, Dahlia Trimble <span dir="ltr"><<a href="mailto:dahliatrimble@gmail.com" target="_blank">dahliatrimble@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr"><div>Actually the 2nd link is for libopenmetaverse, the library which implements the Second Life protocol. It's used in OpenSimulator for generating the UDP packets and other messages which allow communications with the various viewers. The wiki often has information which cannot be found in the Second Life wiki, and the code is quite well structured and complete and contains a good understanding of the protocol.<br>


<br></div>Good luck with your protocol. I've designed a couple alternative protocols and I found it to be quite challenging; there are many "gotchas" lurking around. I've also implemented alternative protocols both as IClientAPI modules and as region modules, and I found region modules to be a better place for experimenting as the IClientApi interface is constantly changing and it's difficult to keep private modules in sync with core. Region module interfaces are much more simple and stable, and you really only need to ask for events that you care about thru EventManager. If you want to instantiate avatars, the NPC facilities can be invoked from region modules as well.<br>


</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Apr 20, 2013 at 4:08 AM, Sergiy Byelozyorov <span dir="ltr"><<a href="mailto:rryk.ua@gmail.com" target="_blank">rryk.ua@gmail.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thank you for the links. I've seen the first one - it did gave me sufficient introduction, but it is not detailed enough. Many messages are only described by their structure, but not the meaning of each field, e.g. <a href="http://wiki.secondlife.com/wiki/ParcelAccessListUpdate" target="_blank">this one</a> (what flags can be set?) or <a href="http://wiki.secondlife.com/wiki/AgentHeightWidth" target="_blank">this one</a> (what's agent's client and width, gen counter?). This information can be found in the code and I have compiled a short description for a few messages: <a href="https://docs.google.com/spreadsheet/ccc?key=0AtS8km6a08YmdGZUS0FINkhibGZ1U2RVZnJSSXMzZ1E&usp=sharing" target="_blank">https://docs.google.com/spreadsheet/ccc?key=0AtS8km6a08YmdGZUS0FINkhibGZ1U2RVZnJSSXMzZ1E&usp=sharing</a><div>





<br></div><div>The second one seems like a guide for developing scripts in-world, while I am currently looking into writing an alternative protocol for client-server communication. I have some plans to work on scripting APIs too, so it will be useful for me at some point in the future.</div>


<span><font color="#888888">


</font></span><div class="gmail_extra"><span><font color="#888888"><br clear="all"><div><br>Sergiy</div></font></span><div><div>
<br><br><div class="gmail_quote">On Sat, Apr 20, 2013 at 8:11 AM, Dahlia Trimble <span dir="ltr"><<a href="mailto:dahliatrimble@gmail.com" target="_blank">dahliatrimble@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">





<div dir="ltr">If you're interested in LL protocol, <a href="http://wiki.secondlife.com/wiki/Protocol" target="_blank">http://wiki.secondlife.com/wiki/Protocol</a> might be a good place to start. There's also <a href="http://lib.openmetaverse.org/wiki/Developer_Portal" target="_blank">http://lib.openmetaverse.org/wiki/Developer_Portal</a> which contains a lot of useful information.<br>






</div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Apr 19, 2013 at 2:58 PM, Sergiy Byelozyorov <span dir="ltr"><<a href="mailto:rryk.ua@gmail.com" target="_blank">rryk.ua@gmail.com</a>></span> wrote:<br>






<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">I can only view source, but can't edit the page. Perhaps you can create a new page "Linden Lab viewer protocol", grant me the rights to edit it and link it from the Client-Server protocol section. My username in the wiki is Rryk.</div>






<span><font color="#888888">

</font></span><div class="gmail_extra"><span><font color="#888888"><br clear="all"><div><br>Sergiy</div></font></span><div><div>
<br><br><div class="gmail_quote">On Fri, Apr 19, 2013 at 9:26 PM, Justin Clark-Casey <span dir="ltr"><<a href="mailto:jjustincc@googlemail.com" target="_blank">jjustincc@googlemail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">








A great place to do this would be on new wiki page(s) linked from [1].  Please feel free just to create a wiki account and start editing!  I haven't yet written up any general information the LL viewer-server protocol and it would be great to have some.<br>









<br>
Another place for protocol information might be the libomv wiki [2], though on a (very) casual glance I don't see any protocol-level doc apart from the auto-extracted UDP message templates.<br>
<br>
The other sources of protocol information would be the LL wiki.<br>
<br>
[1] <a href="http://opensimulator.org/wiki/Communication_Protocols" target="_blank">http://opensimulator.org/wiki/<u></u>Communication_Protocols</a><br>
[2] <a href="http://lib.openmetaverse.org/wiki/Developer_Portal" target="_blank">http://lib.openmetaverse.org/<u></u>wiki/Developer_Portal</a><div><br>
<br>
On 19/04/13 20:10, Sergiy Byelozyorov wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div>
Thank you. This mailing list is in principle some kind of documentation. :-)<br>
<br>
Btw, I have done some study of the LL protocol and wrote a small summary for a few messages (that were logged by the<br>
server while a client has performed a few simple actions such as walking and flying). I haven't found any documentation<br>
on the protocol other than the one in the code, which is where I have got the information from. Perhaps someone can use<br>
my research - where can I post my study? Would be also great if I could update it as I will continue to learn more about<br>
the protocol with time.<br>
<br>
<br>
Sergiy<br>
<br>
<br></div><div>
On Tue, Apr 16, 2013 at 11:06 PM, Justin Clark-Casey <<a href="mailto:jjustincc@googlemail.com" target="_blank">jjustincc@googlemail.com</a> <mailto:<a href="mailto:jjustincc@googlemail.com" target="_blank">jjustincc@googlemail.<u></u>com</a>>> wrote:<br>









<br>
    This is very old code, some of which was originally present for load balancing experiments which have long been<br>
    defunct and the original coders unavailable.  Its purpose was also completely undocumented.  Therefore, I have<br>
    removed NetworkStop().<br>
<br>
    As for AddScene, you can assume it will only be called once.  There is a mechanism in OpenSimBase which looks like<br>
    it was intended as a bypass (presumably so that AddScene() could be called multiple times on a single<br>
    INetworkClientServer).  But I believe this was again present for the above load balancing experiments and is<br>
    effectively defunct.<br>
<br>
    I'm afraid no general documentation really exists for the client stack interfaces and mechanisms.  The best we can<br>
    do is try and fill in the blanks on request.<br>
<br>
<br>
    On 15/04/13 15:27, Sergiy Byelozyorov wrote:<br>
<br>
        Also what's the difference between Stop and NetworkStop?<br>
<br>
<br>
        Sergiy<br>
<br>
<br>
        On Mon, Apr 15, 2013 at 4:21 PM, Sergiy Byelozyorov <<a href="mailto:rryk.ua@gmail.com" target="_blank">rryk.ua@gmail.com</a> <mailto:<a href="mailto:rryk.ua@gmail.com" target="_blank">rryk.ua@gmail.com</a>><br>








</div><div>
        <mailto:<a href="mailto:rryk.ua@gmail.com" target="_blank">rryk.ua@gmail.com</a> <mailto:<a href="mailto:rryk.ua@gmail.com" target="_blank">rryk.ua@gmail.com</a>>>> wrote:<br>
<br>
             Hi,<br>
<br>
             I am implementing a new client network server class. Is there any documentation on IClientNetworkServer? In<br>
             particular I am interested whether AddScene may be called several times or not.<br>
<br>
             Sergiy<br>
<br>
<br>
<br>
<br></div>
        ______________________________<u></u>___________________<br>
        Opensim-dev mailing list<br>
        <a href="mailto:Opensim-dev@lists.berlios.de" target="_blank">Opensim-dev@lists.berlios.de</a> <mailto:<a href="mailto:Opensim-dev@lists.berlios.de" target="_blank">Opensim-dev@lists.<u></u>berlios.de</a>><br>









        <a href="https://lists.berlios.de/__mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/__<u></u>mailman/listinfo/opensim-dev</a> <<a href="https://lists.berlios.de/mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/<u></u>mailman/listinfo/opensim-dev</a>><div>








<br>
<br>
<br>
<br>
    --<br>
    Justin Clark-Casey (justincc)<br>
    OSVW Consulting<br>
    <a href="http://justincc.org" target="_blank">http://justincc.org</a><br>
    <a href="http://twitter.com/justincc" target="_blank">http://twitter.com/justincc</a><br></div>
    ______________________________<u></u>___________________<br>
    Opensim-dev mailing list<br>
    <a href="mailto:Opensim-dev@lists.berlios.de" target="_blank">Opensim-dev@lists.berlios.de</a> <mailto:<a href="mailto:Opensim-dev@lists.berlios.de" target="_blank">Opensim-dev@lists.<u></u>berlios.de</a>><br>
    <a href="https://lists.berlios.de/__mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/__<u></u>mailman/listinfo/opensim-dev</a> <<a href="https://lists.berlios.de/mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/<u></u>mailman/listinfo/opensim-dev</a>><div>








<br>
<br>
<br>
<br>
<br>
______________________________<u></u>_________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@lists.berlios.de" target="_blank">Opensim-dev@lists.berlios.de</a><br>
<a href="https://lists.berlios.de/mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/<u></u>mailman/listinfo/opensim-dev</a><br>
<br>
</div></blockquote><div><div>
<br>
<br>
-- <br>
Justin Clark-Casey (justincc)<br>
OSVW Consulting<br>
<a href="http://justincc.org" target="_blank">http://justincc.org</a><br>
<a href="http://twitter.com/justincc" target="_blank">http://twitter.com/justincc</a><br>
______________________________<u></u>_________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@lists.berlios.de" target="_blank">Opensim-dev@lists.berlios.de</a><br>
<a href="https://lists.berlios.de/mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/<u></u>mailman/listinfo/opensim-dev</a><br>
</div></div></blockquote></div><br></div></div></div>
<br>_______________________________________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@lists.berlios.de" target="_blank">Opensim-dev@lists.berlios.de</a><br>
<a href="https://lists.berlios.de/mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@lists.berlios.de" target="_blank">Opensim-dev@lists.berlios.de</a><br>
<a href="https://lists.berlios.de/mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br></blockquote></div><br></div></div></div></div>
<br>_______________________________________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@lists.berlios.de" target="_blank">Opensim-dev@lists.berlios.de</a><br>
<a href="https://lists.berlios.de/mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a><br>
<a href="https://lists.berlios.de/mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br></blockquote></div><br></div>