gazebosim / gz-launch

Run and manage programs and plugins.
https://gazebosim.org
Apache License 2.0
10 stars 14 forks source link

websocket server sends duplicate message headers in protos response #246

Open mjay-cr opened 5 months ago

mjay-cr commented 5 months ago

Environment

Description

Steps to reproduce

  1. Install gz-harmonic
  2. On a terminal run gz sim -v 4 -s -r shapes.sdf
  3. In another terminal run gz launch -v 4 /usr/share/gz/gz-launch7/configs/websocket.gzlaunch
  4. Go to web app and click connect

Output

If you open up the dev-tools on the browswer and then look at console, you will see the error:

ERROR Error: duplicate name 'Any' in Namespace .gz.msgs
    add namespace.js:240
    parseType parse.js:354
    parseCommon parse.js:261
    parse parse.js:790
    onloadend gzweb.module.js:11673

Switching to network and filtering by WebSocket requests, you will see that gzweb sends protos request. (Looking at the gz_launch console log will also show that it has been received). Then the response, when viewed as UTF-8 will see the proto headers sent below. After Wrench message it seems to repeat? Response from gz-garden and gz-harmonic are attached. Note: that the web visualisation works with garden and fortress (as per the steps above)

gz-garden-response.txt gz-harmonic-response.txt

Not sure if these duplicate headers are the problem but seems like a bug

hughlv commented 2 months ago

Before this issue gets solved, what is the best workaround? I need to run gazebo as a websocket server so I can use gzweb2 to render on webpage.

mjay-cr commented 2 months ago

Before this issue gets solved, what is the best workaround? I need to run gazebo as a websocket server so I can use gzweb2 to render on webpage.

Not sure if this is helpful but my current "workaround" is to just not migrate to harmonic, this is the only thing that is stopping me from migrating from fortress.