[ ...prevMessages, JSON.parse(message.body), ]); }); }; newClient.onStompError = function (frame) { setConnectionStatus("ERROR"); console.log("Broker reported error: " + frame.headers["message"]); console.log("Additional details: " + frame.body); }; newClient.onWebSocketClose = fun"> [ ...prevMessages, JSON.parse(message.body), ]); }); }; newClient.onStompError = function (frame) { setConnectionStatus("ERROR"); console.log("Broker reported error: " + frame.headers["message"]); console.log("Additional details: " + frame.body); }; newClient.onWebSocketClose = fun"> [ ...prevMessages, JSON.parse(message.body), ]); }); }; newClient.onStompError = function (frame) { setConnectionStatus("ERROR"); console.log("Broker reported error: " + frame.headers["message"]); console.log("Additional details: " + frame.body); }; newClient.onWebSocketClose = fun">
useEffect(() => {
const newClient = new Client({
brokerURL: `wss://${import.meta.env.VITE_SOCKET_URL}`,
connectHeaders: {
Authorization: token,
},
debug: function (str) {
console.log("STOMP: " + str);
},
reconnectDelay: 5000,
heartbeatIncoming: 4000,
heartbeatOutgoing: 4000,
});
newClient.onConnect = function (frame) {
setConnectionStatus("CONNECTED");
console.log("Connected: " + frame);
newClient.subscribe(`/topic/bidder-count/${id}`, function (message) {
console.log("Received: " + message.body);
setMessages((prevMessages) => [
...prevMessages,
JSON.parse(message.body),
]);
});
};
newClient.onStompError = function (frame) {
setConnectionStatus("ERROR");
console.log("Broker reported error: " + frame.headers["message"]);
console.log("Additional details: " + frame.body);
};
newClient.onWebSocketClose = function () {
setConnectionStatus("CLOSED");
console.log("WebSocket Connection Closed");
};
newClient.onDisconnect = function () {
setConnectionStatus("DISCONNECTED");
console.log("Stomp Disconnected");
};
console.log("Attempting to connect to WebSocket...");
newClient.activate();
setClient(newClient);
return () => {
console.log("Deactivating WebSocket connection...");
if (newClient) {
newClient.deactivate();
}
};
}, [id, token]);