Hallo,
ich benutze Websocket und möchte erfahren, wann der User online und wann er offline ist.
Der Code oben gibt jedem User die Information, dass der User nun offline ist. So weit ist alles gut.
Ich habe eine User-Liste mit folgendem Code:
Ihr seht die CSS-Klassen "status" und "offline". "offline" ist momentan nur statisch, sollte aber dynamisch sein.
Ich möchte also, dass die Methode
Falls ihr eine Idee hättet, würde ich mich sehr freuen!
Falls euch der ganze Code interessiert: https://bitbucket.org/rezasript/zt-productions/
ich benutze Websocket und möchte erfahren, wann der User online und wann er offline ist.
Java:
@OnClose
public void handleClose(Session userSession) throws IOException {
users.remove(userSession);
// Post the message
for (Session user : users) {
Helper helper = new Helper();
String currentTime = helper.getTheDate("HH:mm:ss");
user.getBasicRemote().sendText(String.format("[%s] %s %s<br>", currentTime, userSession.getUserProperties().get("username"), "has just quit."));
}
}
Der Code oben gibt jedem User die Information, dass der User nun offline ist. So weit ist alles gut.
Ich habe eine User-Liste mit folgendem Code:
HTML:
<img class="profile-pic" src="../assets/img/jessica.png" alt="Jessica"> <i class="status offline"></i>Jessica
<img class="profile-pic" src="../assets/img/reza.png" alt="Reza"> <i class="status offline"></i>Reza
<img class="profile-pic" src="../assets/img/kevin.png" alt="Kevin"> <i class="status offline"></i>Kevin
...
Ihr seht die CSS-Klassen "status" und "offline". "offline" ist momentan nur statisch, sollte aber dynamisch sein.
Ich möchte also, dass die Methode
handleClose()
nicht nur die Information an User mitteilt, sondern, dass ich die Information auch in JavaScript bekomme, damit ich die CSS-Klasse dann entsprechend eingeben kann. Zwar liefert der Server einen String (und zwar eben das was der User sieht), hier ein Beispiel:Aber ich denke es müsste irgendwie eine bessere Lösung geben.[01:34:33] reza has just quit.
Javascript:
const log = console.log.bind(console);
/* CHAT */
const webSocket = new WebSocket('ws://localhost:8080/test_war_exploded/chat');
const chatResult = document.querySelector('.result');
const loginArea = document.querySelector('.login-area');
// Open
webSocket.onopen = (msg) => {
log("Server is now connected\n");
log(msg);
};
// Message
webSocket.onmessage = (msg) => {
chatResult.innerHTML += msg.data;
};
// Close
webSocket.onclose = (msg) => {
webSocket.send('has just quit.');
log(msg.data); // <-- liefert nichts zurück
};
// Error
webSocket.onerror = () => {
log("There is an error. Try it again later.");
};
Falls ihr eine Idee hättet, würde ich mich sehr freuen!
Falls euch der ganze Code interessiert: https://bitbucket.org/rezasript/zt-productions/
Zuletzt bearbeitet: