theluyuan 38ba663466
Some checks failed
Close stale issues and PRs / stale (push) Has been cancelled
init
2025-09-02 14:49:16 +08:00

63 lines
1.6 KiB
JavaScript

const token = 'JWT_TOKEN_GOES_HERE'
const stompClient = new StompJs.Client({
brokerURL: 'ws://localhost:8060/waiting-queue/visitor/websocket',
});
stompClient.onWebSocketError = (error) => {
console.error('Error with websocket', error);
};
stompClient.onStompError = (frame) => {
console.error('Broker reported error: ' + frame.headers['message']);
console.error('Additional details: ' + frame.body);
};
function setConnected(connected) {
$("#connect").prop("disabled", connected);
$("#disconnect").prop("disabled", !connected);
if (connected) {
$("#conversation").show();
}
else {
$("#conversation").hide();
}
$("#messages").html("");
}
function connect(conference) {
console.log("Connecting to conference " + conference);
headers = {
Authorization: 'Bearer ' + token
};
stompClient.connectHeaders = headers;
stompClient.onConnect = (frame) => {
setConnected(true);
console.log('Connected: ' + frame);
stompClient.subscribe('/secured/conference/visitor/topic.' + conference, (message) => {
showMessage(message.body);
}, headers);
};
stompClient.activate();
}
function disconnect() {
stompClient.deactivate();
setConnected(false);
console.log("Disconnected");
}
function showMessage(message) {
$("#messages").append("<tr><td>" + message + "</td></tr>");
}
$(function () {
$("form").on('submit', (e) => e.preventDefault());
$( "#connect" ).click(() => connect($("#conference").val()));
$( "#disconnect" ).click(() => disconnect());
});