After a round of troubleshooting with Edu, I think we have isolated a bug in webmapper when handling multiple concurrent clients. Turns out multicast was working fine (testmonitor shows everything, as long as the correct network interface is used*) The following shows two clients running on the same machine (where webmapper is running). where I leave the bottom one untouched but the top one is repeatedly refreshed:
Once every so often (maybe once every 10 refreshes or so), we see that the remainder of the websocket data ends up being sent to the wrong client (bottom one), which then cause the UI to miss the rest of the mapping information. webmapper appears to have pushed out the correct info, but just to the wrong client!
When the second client is on another device, it breaks a lot more often (basically most of the time), and also we don't necessarily see the missing data appear on the functional clients either, so it appears that they got sent off "somewhere"...
On the webmapper side, it looks like everything is being pushed out and I can see the prints via the "ws8_send: [..." console messages.
*bonus bug: regarding the network interface, it seems like the command to force interfaces when multiple are active doesn't work: after calling graph.set_iface(iface) in the test examples, it still seems to always default to the first interface. I think what Edu had to turn off Wi-Fi when forcing ethernet to work, for example...