I have looked into X3DOM’s DIS pull request and found out that it uses websocket URLs, and probably a websocket server (DISWebGateway?).<div dir="auto"><br></div><div dir="auto">I am looking at setting up websockets in X_ITE.  I prefer X_ITE over X3DOM because I can use Scripts with typed fields.  My current socket approach is to use a <a href="http://socket.io">socket.io</a> global socket variable. Obviously, this is very non-standard, but <a href="http://socket.io">socket.io</a> has 5M weekly downloads.  I already have a <a href="http://socket.io">socket.io</a> server that I can modify.</div><div dir="auto"><br></div><div dir="auto">Currently, I can emit events from the client to the server using socket.emit, in a Script, so I might have a “move” event that sends a parameter name/value pair.</div><div dir="auto"><br></div><div dir="auto">For receiving events, I use currently use socket.on to register event handlers outside of X3D.  This can be moved into the into the Script initialize method, I believe.  The event handler can call another Script method to change create an event to transfer the parameter values to a ComposedShader field.  I will validate the parameter name in the script and X3D will validate the parameter value through typing as SFFloat.</div><div dir="auto"><br></div><div dir="auto">I am planning on using a ProtoDeclare to implement my parameter name/value pair ProtoInstances (6 of them). The Proto will also display parameter name/value pairs in Text nodes, and slide the TextNode across the screen to follow the mouse, and I think the Proto may also include a  PlaneSensor.</div><div dir="auto"><br></div><div dir="auto">Another thing I am worried about is setting up event handlers before the connection occurs.  What I can do is set up a connection handler in the Proto Script initialize method, then deal with events on a per Proto basis, either by validating the move parameter name fits the ProtoInstance DEF (or another field), or making my events the same as parameter names (not desired).</div><div dir="auto"><br></div><div dir="auto">I have not designed the Proto yet, but I am hopeful.</div><div dir="auto"><br></div><div dir="auto">This is not a generic Transform or HAnimJoint solution.  I’ll probably get there if no one else does.</div><div dir="auto"><br></div><div dir="auto">Probably HTTP/3 and WebTransport offers a more performant solution.  I already have a prototype solution that works with localhost and is nearly deployed.  I’m not looking at deploying HTTPS as node.js will likely be behind Apache/F5, etc.</div>