1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package server;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.websocket.EncodeException;
import javax.websocket.EndpointConfig;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint(value = "/chat/{room}", encoders = {ChatMessagesEncoder.class}, decoders = {ChatMessageDecoder.class})
public class PointTerm {
private final Logger log = Logger.getLogger(getClass().getName());
@OnOpen
public void open(final Session session, EndpointConfig config, @PathParam("room") String room) {
log.log(Level.INFO, "--- login welcome...{0}", room);
session.getUserProperties().put("room", room);
System.err.println("---- " + room);
}
/**
*
* @param session
* @param msg
* @return
* @throws java.io.IOException
* @throws javax.websocket.EncodeException
*/
@OnMessage
public void newMessage(ChatMessage msg, Session session) throws IOException, EncodeException{
String room = (String) session.getUserProperties().get("room");
System.err.println("----- Received");
for (Session s : session.getOpenSessions()) {
if (s.isOpen() && room.equals(s.getUserProperties().get(("room")))) {
try {
s.getBasicRemote().sendObject(msg);
} catch (IOException | EncodeException ex) {
Logger.getLogger(PointTerm.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
@OnError
public void erreur(Throwable error) {
System.err.println("---- erreur...");
}
} |
Partager