rosbridge_suite: failing WebSocket opening handshake
Hi, I am trying to use our NACHI ROS Driver (FlexGui 2.4) with rosbridge. It was working fine with ROS Kinetic (and also older ones), now we moved to ROS Melodic and we are not able to connect anymore. The error message is the following:
failing WebSocket opening handshake ('missing port in HTTP Host header '192.168.212.141' and server runs on non-standard port 9090 (wss = False)')
2020-06-02 15:12:57+0200 [-] dropping connection to peer tcp4:192.168.212.138:1050 with abort=False: missing port in HTTP Host header '192.168.212.141' and server runs on non-standard port 9090 (wss = False)
We are running rosbridge on the default 9090 port, WSS is false.
Specifications
- ROS Version (
echo $ROS_DISTRO): melodic - OS Version (
grep DISTRIB_CODENAME /etc/lsb-release): bionic - Rosbridge Version (
roscat rosbridge_server package.xml | grep '<version>'): 0.11.4 - Twisted Version (
python -c 'import twisted; print twisted.version'): 17.9.0
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 18 (5 by maintainers)
I had the same problem and solved it with the websocket_external_port arg.
The port 40000 in the host was mapped to 9090 in the container. Below is the full command I used:
Worked when the websocket_external_port:=80, one week trying to figure it out.
roslaunch rosbridge_server rosbridge_websocket.launch _port:=9090 websocket_external_port:=80 --screenThis should actually be fixed in newer versions of autobahn https://github.com/crossbario/autobahn-python/commit/80fe02de9754b0898d01d31f2252afdcf9ea2764 . Unfortunately these require python3 which might break other things.
Update: Tried it out on ROS Noetic and updated Autobahn manually. Works perfectly. As a workaround, it worked for me to actually set the external port to 80. Then my client could connect easily.