diff --git a/KvizClient/app/src/main/java/onlab/kvizclient/LobbyActivity.java b/KvizClient/app/src/main/java/onlab/kvizclient/LobbyActivity.java
index e029dc7a21d472c9afaeca076240a17c5a50c18b..affc8fd5c7200ae0cf01ef175d0744e5333e4b54 100644
--- a/KvizClient/app/src/main/java/onlab/kvizclient/LobbyActivity.java
+++ b/KvizClient/app/src/main/java/onlab/kvizclient/LobbyActivity.java
@@ -237,7 +237,7 @@ public class LobbyActivity extends AppCompatActivity implements ServerConnection
     public void onConnect(int serverNumber) {
         try {
             if(servers.size() > serverNumber) {
-                String str = "Connect##"+CLIENT_NAME;
+                String str = "Connect##Client##"+CLIENT_NAME;
                 ServerModel sm = servers.get(serverNumber);
                 Socket socket = sm.getSocket();
                 ServerHolder.setServerModel(sm);
@@ -259,7 +259,7 @@ public class LobbyActivity extends AppCompatActivity implements ServerConnection
     public void onDisconnect() {
         try {
             if (ServerHolder.getSocket() != null) {
-                String str = "Disconnect##"+CLIENT_NAME;
+                String str = "Disconnect##Client"+CLIENT_NAME;
                 if (out == null) {
                     out = new PrintWriter(new BufferedWriter(
                             new OutputStreamWriter(ServerHolder.getSocket().getOutputStream())), true);
diff --git a/KvizServer/app/src/main/java/onlab/kvizserver/LobbyActivity.java b/KvizServer/app/src/main/java/onlab/kvizserver/LobbyActivity.java
index 81f8b5bb3968884514f058ee5c3657e5369dd7c9..bf3ec0885264c5dbb79d2299399754fdb815faa6 100644
--- a/KvizServer/app/src/main/java/onlab/kvizserver/LobbyActivity.java
+++ b/KvizServer/app/src/main/java/onlab/kvizserver/LobbyActivity.java
@@ -41,6 +41,7 @@ public class LobbyActivity extends AppCompatActivity {
     Handler updateConversationHandler;
 
     private ArrayList<ClientModel> clients;
+    private ArrayList<ClientModel> observers;
 
     private RecyclerView recyclerView;
     private ClientListAdapter adapter;
@@ -62,6 +63,7 @@ public class LobbyActivity extends AppCompatActivity {
         setContentView(R.layout.activity_lobby);
 
         clients = new ArrayList<ClientModel>();
+        observers = new ArrayList<ClientModel>();
 
         allclients = new ArrayList<ClientModel>();
 
@@ -277,21 +279,57 @@ public class LobbyActivity extends AppCompatActivity {
                                 break;
                             case "Connect":
                                 boolean van = false;
-                                for (ClientModel client : clients) {
-                                    if (client.getClientsocket() == clientSocket) {
-                                        van = true;
-                                        break;
+                                if(params.length>1)
+                                {
+                                    if(params[1].equals("Observer"))
+                                    {
+                                        for (ClientModel observer : observers) {
+                                            if (observer.getClientsocket() == clientSocket) {
+                                                van = true;
+                                                break;
+                                            }
+                                        }
+                                    }
+                                    if(params[1].equals("Client"))
+                                    {
+                                        for (ClientModel client : clients) {
+                                            if (client.getClientsocket() == clientSocket) {
+                                                van = true;
+                                                break;
+                                            }
+                                        }
+                                    }
+                                    else
+                                    {
+                                        //hiba
                                     }
                                 }
 
 
+
                                 if (!van) {
                                     String cname = "Unknown";
+                                    if (params.length > 2) {
+                                        cname = params[2];
+                                    }
+
                                     if (params.length > 1) {
-                                        cname = params[1];
+                                        if (params[1].equals("Observer")) {
+                                            observers.add(new ClientModel(cname, clientSocket));
+                                            // TODO: 2018. 04. 30. Add observer
+                                        }
+                                        if (params[1].equals("Client")) {
+                                            clients.add(new ClientModel(cname, clientSocket));
+                                            updateConversationHandler.post(new updateUIThread(Operation.ADD_CLIENT, ""));
+                                        }
+
+
+
+                                    }
+                                    else
+                                    {
+                                        //hiba
                                     }
-                                    clients.add(new ClientModel(cname, clientSocket));
-                                    updateConversationHandler.post(new updateUIThread(Operation.ADD_CLIENT, ""));
                                 }
                                 out.println("Connect##Ok!");
                                 break;
@@ -311,16 +349,42 @@ public class LobbyActivity extends AppCompatActivity {
                                 };
                                 break;
                             case "Disconnect":
-
-                                for (ClientModel client : clients) {
-                                    if (client.getClientsocket() == clientSocket) {
-                                        int position = clients.indexOf(client);
-                                        clients.remove(client);
-                                        updateConversationHandler.post(new updateUIThread(Operation.REMOVE_CLIENT, Integer.toString(position)));
-                                        break;
+                                if(params.length>1)
+                                {
+                                    if(params[1].equals("Observer"))
+                                    {
+                                        for (ClientModel observer : observers) {
+                                            if (observer.getClientsocket() == clientSocket) {
+                                                int position = observers.indexOf(observer);
+                                                observers.remove(observer);
+                                                // TODO: 2018. 04. 30. Remove Observer
+                                                break;
+                                            }
+
+                                        };
+                                    }
+                                    if(params[1].equals("Client"))
+                                    {
+                                        for (ClientModel client : clients) {
+                                            if (client.getClientsocket() == clientSocket) {
+                                                int position = clients.indexOf(client);
+                                                clients.remove(client);
+                                                updateConversationHandler.post(new updateUIThread(Operation.REMOVE_CLIENT, Integer.toString(position)));
+                                                break;
+                                            }
+
+                                        };
+                                    }
+                                    else
+                                    {
+                                        //hiba
                                     }
+                                }
+                                else
+                                {
+                                    //hiba
+                                }
 
-                                };
                                 break;
                             default:
                                 out.println("Unknown Message!");