Stream QSOs

This commit is contained in:
2025-04-02 09:47:11 +00:00
parent a446efda36
commit 2a9640081b
3 changed files with 25 additions and 16 deletions

View File

@@ -1,7 +0,0 @@
const config = {
mqttserver: {
host: "mqtt://[your mqtt-server hiere]"
}
};
module.exports = config;

View File

@@ -12,7 +12,6 @@
</style> </style>
</head> </head>
<body> <body>
Topic: <input type="text" id="i_topic" name="n_topic"></br>
<div id="mqtt" class="monospace selection"></div> <div id="mqtt" class="monospace selection"></div>
<script type="text/javascript"> <script type="text/javascript">
(function() { (function() {
@@ -23,20 +22,20 @@
console.log('Connected to:', socket.host); console.log('Connected to:', socket.host);
}); });
socket.on('mqtt', function(message) { socket.on('mqtt', function(message) {
if (message.topic) {
try { try {
message.content=JSON.stringify(message.content); showit=JSON.stringify(message);
} catch {}; } catch {};
buffer.append( message.timestamp.toString() +':&nbsp;<b>'+message.topic.toString() + '</b>&nbsp;&nbsp;' + message.content.toString() + '<br/>' ); buffer.append( showit.toString() + '<br/>' );
buffer.scrollTop(lines*100); buffer.scrollTop(lines*100);
lines++; lines++;
}
}); });
/*
$( "#i_topic" ).change(function() { $( "#i_topic" ).change(function() {
socket.emit("wishtopic",this.value); socket.emit("wishtopic",this.value);
$('#mqtt').empty(); $('#mqtt').empty();
}); });
*/
})(); })();
</script> </script>

25
mqtt.js
View File

@@ -16,12 +16,15 @@ app.get('/', (req, res) => { // Routing fuer index.html
io.on('connection', (socket) => { // Neue socket.io Connection? io.on('connection', (socket) => { // Neue socket.io Connection?
console.log(socket.id + " connected"); // Debug console.log(socket.id + " connected"); // Debug
client[socket.id] = mqtt.connect(mqttserver); // Dann neue MQTT-Verbindung aufmachen (je sock.io CLient eine, indiziert ueber die socket.id) client[socket.id] = mqtt.connect(mqttserver); // Dann neue MQTT-Verbindung aufmachen (je sock.io CLient eine, indiziert ueber die socket.id)
client[socket.id].subscribe('wavelog/#'); // Vom alten topic "unscubriben"
/*
socket.on('wishtopic', (msg) => { // Von der Website kommt ein neuer Topic-Wunsch socket.on('wishtopic', (msg) => { // Von der Website kommt ein neuer Topic-Wunsch
client[socket.id].unsubscribe(topica); // Vom alten topic "unscubriben" client[socket.id].unsubscribe(topica); // Vom alten topic "unscubriben"
client[socket.id].subscribe(msg); // Neues Subscriben client[socket.id].subscribe(msg); // Neues Subscriben
topica=msg; // Neues merken topica=msg; // Neues merken
console.log('message: ' + msg); // Debug-Log console.log('message: ' + msg); // Debug-Log
}); });
*/
socket.on("disconnect", (reason) => { // Socket.io Client gone? Dann mqtt fuer diesen Client wieder schliessen socket.on("disconnect", (reason) => { // Socket.io Client gone? Dann mqtt fuer diesen Client wieder schliessen
client[socket.id].end(); client[socket.id].end();
console.log(socket.id + " disconnected"); console.log(socket.id + " disconnected");
@@ -33,17 +36,31 @@ io.on('connection', (socket) => { // Neue socket.io Connection?
try { try {
messagex=JSON.parse(message); // Versuchen mqtt-nachricht durch den jsonparser zu parsen messagex=JSON.parse(message); // Versuchen mqtt-nachricht durch den jsonparser zu parsen
msg.content=messagex; // ergebnis in content haemmern msg.content=messagex; // ergebnis in content haemmern
} catch(e) {} console.log("JSON");
} catch(e) {
console.log("No JSON");
}
} else { } else {
msg.content=message.toString(); // Ist nix json? dann ab in "content" damit msg.content=message.toString(); // Ist nix json? dann ab in "content" damit
} }
msg.timestamp=dateFormat(date, "yyyy-mm-dd hh:MM:ss"); // timestamp formatieren tobrowser=parse_msg(msg.content);
msg.topic=topic.toString(); // topic in das nachrichtenobject packen socket.emit("mqtt",tobrowser); // und raus an den Browser (nur fuer DIESES Socket, nicht fuer alle Clients) damit
socket.emit("mqtt",msg); // und raus an den Browser (nur fuer DIESES Socket, nicht fuer alle Clients) damit // socket.emit("mqtt",parse_msg(msg)); // und raus an den Browser (nur fuer DIESES Socket, nicht fuer alle Clients) damit
}); });
}); });
function parse_msg(msg) {
let retmsg={};
retmsg.call=msg.COL_CALL;
retmsg.station_call=msg.STATION_CALLSIGN;
retmsg.station_grid=msg.COL_MY_GRIDSQUARE;
retmsg.grid=msg.COL_GRIDSQUARE;
retmsg.band=msg.COL_BAND;
retmsg.mode=msg.COL_MODE
return retmsg;
}
http.listen(8000, () => { // Webserver starten http.listen(8000, () => { // Webserver starten
console.log(`Socket.IO server running at http://localhost:8000/`); // debug console.log(`Socket.IO server running at http://localhost:8000/`); // debug
}); });