Merge pull request 'feat: WSS rosbridge proxy + auto-detect wss:// in tracker (Issue #681)' (#725) from sl-jetson/issue-681-wss-rosbridge into main
This commit is contained in:
commit
47d0631d81
64
jetson/nginx/saul-tee.conf
Normal file
64
jetson/nginx/saul-tee.conf
Normal file
@ -0,0 +1,64 @@
|
||||
# saul-tee.conf — nginx site for saul-t-mote.evthings.app reverse proxy
|
||||
#
|
||||
# Replaces: python3 -m http.server 8080 --directory /home/seb
|
||||
# Router (ASUS Merlin / OpenResty) terminates TLS on :443 and proxies to Orin:8080
|
||||
#
|
||||
# Deploy:
|
||||
# sudo cp saul-tee.conf /etc/nginx/sites-available/saul-tee
|
||||
# sudo ln -sf /etc/nginx/sites-available/saul-tee /etc/nginx/sites-enabled/saul-tee
|
||||
# sudo systemctl reload nginx
|
||||
#
|
||||
# ROUTER REQUIREMENT for WSS to work:
|
||||
# The ASUS Merlin router's nginx/OpenResty must proxy /rosbridge with
|
||||
# WebSocket headers. Add to /jffs/configs/nginx.conf.add:
|
||||
#
|
||||
# map $http_upgrade $connection_upgrade {
|
||||
# default upgrade;
|
||||
# '' close;
|
||||
# }
|
||||
#
|
||||
# And in the server block that proxies to 192.168.86.158:8080, add:
|
||||
#
|
||||
# location /rosbridge {
|
||||
# proxy_pass http://192.168.86.158:8080/rosbridge;
|
||||
# proxy_http_version 1.1;
|
||||
# proxy_set_header Upgrade $http_upgrade;
|
||||
# proxy_set_header Connection $connection_upgrade;
|
||||
# proxy_read_timeout 86400;
|
||||
# }
|
||||
|
||||
# Infer WebSocket upgrade from Connection header.
|
||||
# Handles the case where an upstream proxy (e.g. ASUS Merlin OpenResty)
|
||||
# passes Connection: upgrade but strips the Upgrade: websocket header.
|
||||
map $http_connection $ws_upgrade {
|
||||
"upgrade" "websocket";
|
||||
default "";
|
||||
}
|
||||
|
||||
server {
|
||||
listen 8080 default_server;
|
||||
listen [::]:8080 default_server;
|
||||
|
||||
root /home/seb;
|
||||
index index.html;
|
||||
server_name _;
|
||||
|
||||
# Static files — replaces python3 -m http.server 8080 --directory /home/seb
|
||||
location / {
|
||||
try_files $uri $uri/ =404;
|
||||
autoindex on;
|
||||
}
|
||||
|
||||
# rosbridge WebSocket reverse proxy
|
||||
# wss://saul-t-mote.evthings.app/rosbridge --> ws://127.0.0.1:9090
|
||||
location /rosbridge {
|
||||
proxy_pass http://127.0.0.1:9090/;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $ws_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_read_timeout 86400;
|
||||
proxy_send_timeout 86400;
|
||||
}
|
||||
}
|
||||
@ -227,7 +227,7 @@ body {
|
||||
<div class="logo">⚡ SAUL-TEE TRACKER</div>
|
||||
<div id="conn-bar">
|
||||
<div id="ros-dot" title="ROS Bridge"></div>
|
||||
<input id="ws-input" type="text" value="ws://100.64.0.2:9090" placeholder="ws://host:port" />
|
||||
<input id="ws-input" type="text" value="" placeholder="ws://host:port" />
|
||||
<button class="hbtn" id="btn-connect">CONNECT</button>
|
||||
<span id="conn-label">Not connected</span>
|
||||
</div>
|
||||
@ -732,7 +732,10 @@ map.on('dragstart', () => {
|
||||
// ── Init ──────────────────────────────────────────────────────────────────────
|
||||
|
||||
(function init() {
|
||||
const saved = localStorage.getItem('saul_tee_ws_url') || 'ws://100.64.0.2:9090';
|
||||
const defaultUrl = location.protocol === 'https:'
|
||||
? 'wss://saul-t-mote.evthings.app/rosbridge'
|
||||
: 'ws://100.64.0.2:9090';
|
||||
const saved = localStorage.getItem('saul_tee_ws_url') || defaultUrl;
|
||||
$('ws-input').value = saved;
|
||||
drawCompass(null);
|
||||
connectRos(saved);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user