<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:472253142;
        mso-list-type:hybrid;
        mso-list-template-ids:286569224 -1 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style></head><body lang=EN-US><div class=WordSection1><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>What do you think about using pub/sub or messaging?  What “style” of protocol works best in SP-ARK’s case?  I think one to many and many to one is one of the best features of pub/sub, but often it takes a lot infrastructure to maintain the queues.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Maybe we should step back and define the objects we are communicating.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><ol style='margin-top:0in' start=1 type=1><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>Avatar (initial H-Anim figure) and position, orientation, motion (ongoing).   This is done by pc.multiplayer tag around the world<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>Things the avatar might be carrying (shapes transformed by the avatars position, orientation and motion)<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>Sounds-chat-video applied to avatar position<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>???<o:p></o:p></li></ol><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thus some actions might be:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Subscribe to Avatar Topic, Reply Address<o:p></o:p></p><p class=MsoNormal>Subscribe to Inventory Topic, Reply Address<o:p></o:p></p><p class=MsoNormal>Subscribe to Communication Topic, Reply Address<o:p></o:p></p><p class=MsoNormal>Avatar Publish<o:p></o:p></p><p class=MsoNormal>Inventory Publish<o:p></o:p></p><p class=MsoNormal>Communication Publish<o:p></o:p></p><p class=MsoNormal>Receive Avatar Publish<o:p></o:p></p><p class=MsoNormal>Receive Inventory Publish<o:p></o:p></p><p class=MsoNormal>Receive Communication Publish<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>This feels a lot more natural to me than the SQL, Chat or REST protocols.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>We can create different topics to communicate about, probably subclasses of NetworkSensor or some such.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Check out the High Fidelity intro video for ideas about what might be done, re: Inventory.   This will be important when we get to VR controllers.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Collaboration as far as the scene itself is a lot like SAI, but perhaps we need to consider network traffic for that?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Don, what do you think about putting a network pub/sub interface into the event loop for X3Dv4?  Is there a popular JavaScript pub/sub?<i><o:p></o:p></i></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John<o:p></o:p></p></div></body></html>