public class Connection
{
protected void handleIncomingMessage(String name, Object msg) {
if (msg instanceof AuthMessage) //check if it is a password message
{
if (Reverse.crypto(((AuthMessage) msg).getContent()).equals(this.server.getPassword()))
{
AuthMessage m = new AuthMessage("Server",Reverse.crypto("OK"));
this.send(m);
}
else
{
server.removeConnection(this);
content = "Authentication failed!! User is kicked.";
server.broadcast("Server" ,Reverse.crypto(content) ,Color.orange);
try {
socket.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
if (msg instanceof TextMessage)
{
content = ((TextMessage) msg).getSender() + ": " + Reverse.crypto(((TextMessage) msg).getContent());
server.broadcast(((TextMessage) msg).getSender(), ((TextMessage) msg).getContent() ,((TextMessage) msg).getColor());
}
}
public void run() {
String clientName = socket.getInetAddress().toString();
server.broadcast("Server",Reverse.crypto("New User has joined."),Color.orange);
try {
while (connectionOpen) {
try {
Object msg = inputStream.readObject();
handleIncomingMessage(clientName, msg);
} catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
server.removeConnection(this);
server.broadcast("Server",Reverse.crypto("User has left."),Color.orange);
try {
socket.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}