public bool Connect(string name) { if (!clientsNames.Contains(name)) { clientsNames.Add(name); } if (clientsAndNames.ContainsValue(clientsNames.IndexOf(name))) { return(false); } IchatClient clientCallback = OperationContext.Current.GetCallbackChannel <IchatClient>(); clientsAndNames.Add(clientCallback, clientsNames.IndexOf(name)); Post(clientsNames[clientsAndNames[clientCallback]] + " dolaczyl do rozmowy."); return(true); }
public void Post(string message) { IchatClient clientCallback = OperationContext.Current.GetCallbackChannel <IchatClient>(); string name = clientsNames[clientsAndNames[clientCallback]]; Console.WriteLine(name + " : " + message); foreach (KeyValuePair <IchatClient, int> client in clientsAndNames) { Console.WriteLine(client.Key); try { Thread callback = new Thread(callbackThread); callback.Start(new info(clientCallback, name, message)); // client.Key.messagePosted(name, message); } catch (Exception e) { Disconnect(client.Key); } } }
public info(IchatClient c, string n, string m) { client = c; name = n; message = m; }
public void Disconnect() { IchatClient clientCallback = OperationContext.Current.GetCallbackChannel <IchatClient>(); Disconnect(clientCallback); }
private void Disconnect(IchatClient client) { Post(clientsNames[clientsAndNames[client]] + " rozlaczyl sie..."); clientsAndNames.Remove(client); }